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.
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
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.
PlayMaker krävs för detta exempelprojekt.(PlayMaker är en betald tillgång.)
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.
Ö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".
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.)
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.
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.
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")
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".
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".
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".
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".
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".
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.
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.
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”.
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.
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.
OFF/Waiting Trigger R inställning.
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.
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.
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".
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.
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 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.