Gör en ficklampa med lampor i Unity |STILIG (2023)

I den här artikeln visar vi dig hur du skapar en "ficklampa som kan slås på/av" i PlayMaker.

När du förstår hur du använder kontrollenhetens utlösare för att orsaka åtgärder, kan du använda dem för att skapa en mängd olika jippon.

Den rekommenderas också som en introduktion till PlayMaker.

Gör en ficklampa med lampor i Unity |STILIG (1)

Färdig bild

  • 1 prov.
  • 2 Avancerad förberedelse
  • 3 Skapa en ficklampa och låt spelaren ha den
    • 3.1 Hela ritningen.
    • 3.2 Skapa en ficklampa
    • 3.3 Låta spelaren hålla i ficklampan när scenen spelas upp.
    • 3.4 Upptäcka "drag" och "släpp" av triggers i globala händelser.
    • 3.5 För att kunna tända/släcka ljuset med avtryckaren
    • 3.6 lägg till en ljudeffekt.
  • 4 Gör scenen mörkare.
  • 5 Importera till STYLY.

Prov.

Du kan uppleva provrummet från STYLY GALLERY.
Nattmuseet

Gör en ficklampa med lampor i Unity |STILIG (2)

Du kan ladda ner Unity-projektet som beskrivs i artikeln här.
STYLY-Enhet-Exempel

Avancerad förberedelse

Först av allt, ladda ner ett exempelprojekt från Github och öppna det i Unity.

Det är mappen som heter "Ficklampa" i STYLY_Examples att använda den här gången.

STYLY-Enhet-Exempel

PlayMaker krävs för detta exempelprojekt.(PlayMaker är en betald tillgång.)

Unity Asset Store Playmaker

Skapa en ficklampa och låt spelaren ha den

Det är en ficklampa som tänds när kontrollenhetens avtryckare trycks in och släcks när den släpps.

Du kommer att använda PlayMaker för att bygga din logik.

Det allmänna flödet av logiken är som följer;

(1) Få spelarens kontroller att hålla en ficklampa när du laddar en scen

(2) När avtryckaren trycks in övergår den till belysningstillstånd

(3) Övergång till avstängt läge när avtryckaren släpps

Hela ritningen.

Gör en ficklampa med lampor i Unity |STILIG (3)

Övergripande ritning.

Skapa en ficklampa

Skapa först en ficklampa som spelaren kan hålla när den laddar scenen.

Högerklicka på hierarkifönstret.Välj "Ljus" -> "Spotlight" för att skapa en Spotlight och namnge den "Ficklampa".

Gör en ficklampa med lampor i Unity |STILIG (4)

Skapar Spotlight.

Som standard är X-axeln för "Rotation" inställd på "90", så ändra den till "0".

Jag ändrar egenskapen för Spotlight eftersom den har ett kort bestrålningsavstånd och ett smalt bestrålningsintervall för att använda den som ficklampa.

I det här fallet ställer jag in "Range" till "15" och "Spot Angle" till "38".(Du kan justera det efter eget tycke.)

Gör en ficklampa med lampor i Unity |STILIG (5)

Inställningar för avstånd och punktvinkel.

Jag vill att skuggan ska falla när jag lyser med en ficklampa, så jag ändrar "Shadow Type" till "Hard Shadow" och "Render Mode" till "Important".

(På grund av STYLYs specifikation kommer skuggor inte att ritas korrekt om inte "Render Mode" är inställt på "Viktigt".

Skapandet av ficklampan är nu klar.

Dra och släpp den skapade "Ficklampan" till projektfönstret för att göra den prefabricerad.

Gör en ficklampa med lampor i Unity |STILIG (6)

Skugginställning.

Låter spelaren hålla i ficklampan när scenen spelas upp.

Nästa steg är att skapa ett tomt objekt i scenen och bygga logiken.

Processflödet för logiken är som följer;

(1) Använd [Find game object] för att hitta kontrollern i scenen.

(2) Hämta de rumsliga koordinaterna för kontrollenheten genom [Hämta position].

(3) Klicka på [Get Rotation] för att få kontrollens vinkel.

(4) I [Skapa objekt] kommer den [Ficklampa] som skapats tidigare att visas vid kontrollenhetens position i scenen.

(5) Gör ficklampan till ett underordnat objekt för kontrollenheten genom att "Ställ in förälder" och låt den följa kontrollenheten.

Högerklicka på hierarkifönstret.Välj "Create Empty" för att skapa ett tomt objekt och döp det till "Controller_Flashlight".

Det är här vi kommer att bygga logiken i PlayMaker.

Gör en ficklampa med lampor i Unity |STILIG (7)

Skapa ett tomt objekt.

Öppna PlayMaker Editor, högerklicka på fönstret och välj "Lägg till FSM".

(Du kan öppna PlayMaker-fönstret från menyraden under "PlayMaker" -> "PlayMaker Editor")

Gör en ficklampa med lampor i Unity |STILIG (8)

Skapa en FSM.

Byt namn på den skapade "State1" till "SetUp" och lägg till 5 åtgärder, "Hitta spelobjekt", "Hämta position", "Hämta rotation", "Skapa objekt" och "Ange förälder".

För att lägga till en åtgärd, använd Action Browser.

När du har öppnat Action Browser, använd sökfältet för att söka efter fem åtgärder: "Hitta spelobjekt", "Hämta position", "Hämta rotation", "Skapa objekt" och "Ange förälder" och lägg till åtgärden i "SetUp".

Gör en ficklampa med lampor i Unity |STILIG (9)

Lägga till en åtgärd.

När du har lagt till åtgärderna konfigurerar du varje åtgärd enligt följande.

När du har lagt till åtgärder kan du ställa in varje åtgärd enligt följande

"Hitta spelobjekt

Ange "Controller (höger)" i fältet Objektnamn.

Klicka sedan på Store och välj "Ny variabel..." och döp den till "Kontroller".

Den högra styrenheten i scenen kommer nu att sökas igenom och lagras i en variabel som heter "Controller".

Gör en ficklampa med lampor i Unity |STILIG (10)

Hitta spelobjektinställningar.

"Få position"

Klicka på dragfliken "Spelobjekt" och välj "Ange spelobjekt".

När rutan för att ange ett objekt visas, tryck på tvåradsknappen till höger för att växla variabeln som ska specificeras.

Ange sedan "Controller"-variabel som vi skapade tidigare.

Klicka på vektorn och välj "Ny variabel..." och döp den till "Kontrollerposition".

Nu kommer de rumsliga koordinaterna för regulatorn i scenen att lagras i en variabel som kallas "Controller Position".

Gör en ficklampa med lampor i Unity |STILIG (11)

Ställa in Get Position.

"Hämta Rotation

Klicka på dragfliken "Spelobjekt" och välj "Ange spelobjekt".

När rutan för att ange ett objekt visas, tryck på tvåradsknappen till höger för att växla variabeln som ska specificeras.

Ange sedan variabeln "Controller" som vi skapade tidigare.

Klicka på Euler Angles och välj "Ny variabel..." och döp den till "Controller Rotation".

Nu kommer de rumsliga koordinaterna för regulatorn i scenen att lagras i en variabel som kallas "Controller Rotation".

Gör en ficklampa med lampor i Unity |STILIG (12)

Ställ in Get Rotation.

"Skapa objekt"

I "Spelobjektet" ställer vi in en prefab som heter "Ficklampa" som vi skapade tidigare.

"Position" är variabeln "Controller Position" som vi skapade tidigare.

"Rotation" är variabeln "Controller Rotation" som vi skapade tidigare.

Klicka på "Lagra objekt" och välj "Ny variabel..." och döp den till "Skapad ficklampa".

Nu kommer ficklampan att dyka upp vid kontrollenhetens position i scenen och kommer att lagras i en variabel som heter "Created Flashlight".

Gör en ficklampa med lampor i Unity |STILIG (13)

Skapa objektinställningar

"Ställ in förälder".

Syftet med denna åtgärd är att göra ficklampan som genereras i scenen till ett underordnat objekt för kontrollenheten och få den att följa kontrollenheten.

Klicka på dragfliken "Spelobjekt" och välj "Ange spelobjekt".

Tryck sedan på dubbellinjeknappen för att växla mellan variablerna och ange den "Skapade ficklampan" som vi just skapade.

Ställ sedan in "Förälder".

Tryck på knappen med två rader till höger för att växla till att specificera variablerna, välj sedan "Controller".

Nu blir ficklampan som skapas i scenen ett underordnat objekt till kontrollenheten och följer kontrollenheten.

Gör en ficklampa med lampor i Unity |STILIG (14)

Ställa in föräldern.

Upptäcka "drag" och "släpp" av triggers i globala händelser.

Två globala händelser, "Global_TriggerPressDown_R" och "Global_TriggerPressUp_R", kan användas för att upptäcka "pull" och "release" av triggers.

När kontrollenhetens avtryckare dras i STYLY-scenen kommer Global_TriggerPressDown_R-händelsen att aktiveras.

Och när triggern är "släppt" kommer händelsen "Global_TriggerPressUp_R" att aktiveras.

Låt oss skapa dessa två globala evenemang.

Skapa en händelse som heter "Global_TriggerPressDown_R" eller "Global_TriggerPressUp_R" i händelselistan.

Var försiktig, det kommer inte att fungera korrekt om ens ett händelsenamn av dem är fel.

Gör en ficklampa med lampor i Unity |STILIG (15)

Lägga till en global händelse.

För att kunna tända/släcka ljuset med avtryckaren

Skapa först ett nytt tillstånd i PlayMaker Editor och döp det till "OFF/Waiting Trigger R".

Efter att "SetUp"-åtgärden, skapad tidigare, har utförts, är det nödvändigt att gå över till "OFF/Waiting Trigger R"-tillståndet.

Högerklicka på "SetUp" och välj "Add Transition" och "FINISHED" för att skapa en händelse som heter "FINISHED".

Om du drar och släpper detta kommer en pil upp och ansluter den till "OFF/Waiting Trigger R".

Nu, efter att ”SetUp”-åtgärden har utförts, kommer den att övergå till läget ”OFF/Waiting Trigger R”.

Gör en ficklampa med lampor i Unity |STILIG (16)

Skapa övergångar.

Därefter kommer vi att bygga logiken så att avtryckaren kan användas för att tända och släcka lamporna.

Processflödet för logiken är som följer;

(1) När [Global_TriggerPressDown_R] är aktiverad övergår den till belysningstillståndet.

När "Global_TriggerPressUp_R" är aktiverad övergår den till släckt läge.

För att uppnå detta kommer vi att skapa en övergång som visas i följande bild.

Gör en ficklampa med lampor i Unity |STILIG (17)

Färdig bild av övergången.

Högerklicka på "OFF/Waiting Trigger R" och välj "Add Grobal Transition" -> "Global_TriggerPressUp_R".

Högerklicka på "OFF/Waiting Trigger R" och välj "Add Transition" -> "Global_TriggerPressDown_R".

Skapa ett nytt tillstånd och namnge det "PÅ".

Om du drar och släpper "Global_TriggerPressDown_R", kommer du att se en pil och koppla den till "ON".

Nu har vi en slinga som slås på när avtryckaren trycks in, och stängs av när avtryckaren släpps.

Alla de vänstra ska lägga till en åtgärd så att ljuset tänds och släcks enligt varje tillstånd.

Lägg till åtgärden "Set Light Intensity" till både "OFF/Waiting Trigger R" och "ON".

Välj "Created Flashlight" för "Spelobjekt", ställ in "Light Intensity" till "0" för "OFF/Waiting Trigger R" och "1" för "ON".

Ficklampan är nu klar.

Gör en ficklampa med lampor i Unity |STILIG (18)

OFF/Waiting Trigger R inställning.

Gör en ficklampa med lampor i Unity |STILIG (19)

ON-inställning.

lägga till en ljudeffekt.

För att spela upp ljudeffekten med ficklampans PÅ/AV kan du lägga till en åtgärd så att ljudeffekten spelas upp när du går över till "ON" eller "OFF/Waiting Trigger R" tillstånd.

Fäst först "Audio Source" till ficklampan (Ficklampa).Den här gången förberedde jag en SE som heter "Switch".

Förbered en lämplig ljudfil och fäst den i ficklampan genom att dra och släppa den.

Avmarkera "Play On Awake" i den bifogade "Audio Source" och dra spatialen för Spatial Blend till 3D-sidan.

Gör en ficklampa med lampor i Unity |STILIG (20)

Ansluter ljudkälla.

När du är klar trycker du på knappen "Använd" bredvid Pre-fab överst i Inspector för att spara ändringarna du har gjort i Pre-fab.

Gör en ficklampa med lampor i Unity |STILIG (21)

Spara dina ändringar i Prefab.

Lägg sedan till en åtgärd i tillståndet för "Controller_Flashlight".

Lägg till en "Audio Play"-åtgärd till "ON"-läget.

Välj "Created Flashlight" för "Spelobjekt" och fäst "Switch" till "One shot Clip".

Ljudeffekten kommer till ljud när ficklampan är påslagen.

(För att spela upp ljudeffekten även när ljuset är “OFF”, lägg till “Audio Play”-åtgärden till “OFF/Waiting Trigger R”.)

Lägg sedan till åtgärder i tillståndet för "Controller_Flashlight".

Gör en ficklampa med lampor i Unity |STILIG (22)

Audio Play-inställningar.

Gör scenen mörkare.

Det enda sättet att göra en scen mörkare är att ta bort det riktade ljuset, men det gör det inte möjligt att göra det helt mörkare.Om du vill göra det ännu mörkare, ändra inställningen för omgivande ljus.

Du kan få mer information om detta i artikeln nedan.

Hur du kryddar ditt VR-utrymme med Unitys Light-komponent

Importerar till STYLY.

För att använda gimmicken i STYLY, ladda upp den prefabricerade "Controller_Flashlight" som du har skapat.

Du kan lära dig mer om hur du laddar upp tillgångar från Unity till STYLY i den här artikeln.

Hur man laddar upp prefabs och scener från Unity till STYLY

Hur trivdes du med det?

När du har bemästrat hur du gör föremål med PlayMaker kan du nu tillämpa det på en mängd olika jippon.

Använd den här artikeln som referens för att skapa ditt eget originalobjekt.

References

Top Articles
Latest Posts
Article information

Author: Edwin Metz

Last Updated: 01/22/2024

Views: 6312

Rating: 4.8 / 5 (78 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Edwin Metz

Birthday: 1997-04-16

Address: 51593 Leanne Light, Kuphalmouth, DE 50012-5183

Phone: +639107620957

Job: Corporate Banking Technician

Hobby: Reading, scrapbook, role-playing games, Fishing, Fishing, Scuba diving, Beekeeping

Introduction: My name is Edwin Metz, I am a fair, energetic, helpful, brave, outstanding, nice, helpful person who loves writing and wants to share my knowledge and understanding with you.