Taseme lõpetamiseks vajate päästikut. Looge selle jaoks kuup ja skaleerige seda vastavalt vajadusele.
Valige Y-telg ja lülitage kuubikuga isomeetrilisele vaatele. Lohistage risttahukas taseme lõppu või sinna, kus tase peaks lõppema.
Bezeichne ihn beispielsweise mit End. Da der Auslöser im Spiel nicht gesehen werden soll, deaktiviere den Mesh Renderer. Beim Collider muss „is Trigger“ aktiviert sein.
Valige aken Inspektor värviline ikoon, nii et näete endiselt kasti.
Kui ikooni pole näha, avage Unity'is gizmos ja aktiveerige liuguriga 3D -ikoonid ning liigutage liugurit. Siis tunnete oma päästiku ära, isegi kui see on nähtamatu.
Looge skript nimega EndTrigger.
Päästik on koos
tuvastati tühine OnTriggerEnter ()
Nüüd on vaja viidet GameManagerile.
Loote muutuja: public GameManager gameManager;
Viidates GameManagerile, vajate GameManageris uut funktsiooni. Sellepärast avate nüüd GameManageri skripti.
Selles loote uue muutuja:
public void CompleteLevel ()
Olete nüüd GameManageris loonud uue funktsiooni:
Nüüd saate seda funktsiooni EndTriggeri skriptis kutsuda:
gameManager.CompleteLevel ();
TriggerScript näeb nüüd välja selline:
Nüüd lohistate GameManageri skripti vabale kohale.
Kuna teade ilmub hetkel ainult konsooli, peame nüüd mängijale looma kasutajaliidese.
Seega looge lõuendis kasutajaliidese paneel. Lülitage 2D -režiimile ja keskenduge sellele nupuga F. Eemaldage taustpilt, et kasutajaliides oleks läbipaistev.
Pange sellele nimi LevelComplete. Teksti lisamiseks paremklõpsake ja kasutajaliides.
Kohandage oma teksti piire. Lõpuks tsentreerige see. Muutke fonti. Suurendage fondi suurust nt. B. 100
Muutke tekst tasemele. Nimetage tasemel ka TextObject. Kopeerige objekt ja nimetage see täielikuks. Määrake teine font vastavalt vajadusele. Kui märgite mõlemad objektid korraga, saate neid koos liigutada.
Lõpuks deaktiveerige "Level Complete".
Jällegi on GameManageris vaja viidet.
Seda saate teha uue muutuja abil:
avalik GameObject completeLevelUI;
Lisaks lisate funktsiooni alla
public void CompleteLevel ()
{
completeLevelUI.SetActive (tõene);
See aktiveerib funktsiooni.
Skript näeb nüüd välja selline:
Nüüd lohistage LevelComplete mänguhaldurisse.
Kui olete taseme lõpetanud, ilmub tase Täielik.
Järgmisena lisame animatsiooni. Esmalt aktiveerige kasutajaliides uuesti. Nüüd vajate animatsiooni akent.
Looge animatsiooni jaoks kaust. Nimetage uus animatsioon "LevelComplete". Nüüd leiate projekti kaustast kaks vara.
Esimene on animatsioon ise. Lülitage tsükkel välja, kuna animatsiooni tuleks esitada ainult üks kord.
Teine on animatsioonikontroller, mis kuvatakse animaatoris. Animaatorit saab kasutada keeruliste animatsioonide kokkupanemiseks ja linkimiseks.
LevelComplete'i animatsioon on oranžiga esile tõstetud. See tähendab, et taseme mängimisel mängitakse seda esimese animatsioonina.
Minge tagasi animatsiooni aknasse. Kui salvestusrežiim või salvestusrežiim on aktiveeritud, salvestab süsteem iga objekti muudatuse võtmekaadritena.
Näiteks valige 1:00 ja langetage värvi alfa -režiim. Alguses luuakse automaatselt võtmekaader, kus alfa -režiim on endiselt täielik. Muutke võtmekaadrite asendit. Selle tulemusel ilmub alfa -režiimi tõusu ajal tase täielik. Minge umbes 0:50 juurde ja vähendage kasutajaliidese fontide värvide alfa -režiimi. Vahetage vastavad võtmekaadrid eesmiste vastu.
Lülitage LevelComplete kasutajaliides uuesti välja. Taseme lõpus peaks kasutajaliides näitama Level Complete.
Mõne sekundi pärast tuleks uus tase mõne sekundi pärast laadida. Selleks lisage sündmus vahetult enne 2-sekundilist märki.
Animatsioonisündmus võimaldab teil funktsiooni valida.
Vajame LevelComplete objekti jaoks skripti. See skript laadib uue taseme. Nimetage uus komponent: LevelComplete.
Lisage uude skripti:
public void LoadNextLevel ()
a.
Nüüd saate funktsioonina valida LoadNextLevel.
Kui animatsioon jõuab sellesse punkti, laaditakse uus stseen.
Siis peaks stseen muutuma.
Selleks vajate stseenijuhti:
kasutades UnityEngine.SceneManagement;
Avaliku tühjuse alla tuleb:
SceneManager.LoadScene ()
Nüüd tuleks laadida ainult asjakohane stseen. Laaditav stseen sõltub aga tasemest. Seetõttu kasutatakse laadimiseks BuildIndexi.
Jaotises Fail -> Ehitusseaded Unity näitab teie stseene. Võimalik, et peate need ikkagi sisse lohistama. Lõpus kuvatakse ehituse indeks. Unity peaks stseeni laadima vastavalt ehituse indeksile või praegusele stseenile + 1.
Avaliku tühimiku all LoadNextLevel on järgmine:
SceneManager.LoadScene (SceneManager.GetActiveScene (). BuildIndex + 1);
Skript näeb välja selline:
Veenduge, et pärast seda on alati uus stseen, muidu kuvab Unity vea.
Algselt postitatud 2020-06-10 18:11:00.