Upang tapusin ang isang antas kailangan mo ng isang gatilyo. Lumikha ng isang kubo para dito at sukatin ito kung kailangan mo ito.
Piliin ang Y-axis at lumipat sa isometric view gamit ang cube. I-drag ang iyong cuboid sa dulo ng antas o sa kung saan dapat magtapos ang antas.
Halimbawa, lagyan ito ng label na End. Dahil hindi mo gustong makita ang trigger sa laro, i-disable ang mesh renderer. Sa Collider Dapat na i-activate ang "ay Trigger".
Pumili ng isang may kulay na icon sa window ng Inspektor upang maaari mo pa ring makita ang kahon.
Kung ang icon ay hindi nakikita, buksan ang gizmos sa Unity at buhayin ang mga 3D icon gamit ang slider at ilipat ang slider. Pagkatapos ay makikilala mo ang iyong gatilyo, kahit na ito ay hindi nakikita.
Lumikha ng isang script na tinatawag na EndTrigger.
Ang gatilyo ay kasama
walang bisa ang OnTriggerEnter () napansin
Ang isang sanggunian sa GameManager ay kinakailangan na ngayon.
Lumilikha ka ng isang variable: pampublikong GameManager gameManager;
Na may sanggunian sa GameManager, kailangan mo ng isang bagong pag-andar sa GameManager. Iyon ang dahilan kung bakit binubuksan mo ngayon ang script ng GameManager.
Dito ay lumilikha ka ng isang bagong variable:
walang bisa ang pampublikongLLvel ()
Lumikha ka ngayon ng isang bagong pag-andar sa GameManager:
Maaari mo na ngayong tawagan ang pagpapaandar na ito sa EndTrigger script:
gameManager.CompleteLevel ();
Ganito ang hitsura ng TriggerScript:
Ngayon ay i-drag mo ang GameManager sa libreng puwang ng script.
Dahil ang isang mensahe ay lilitaw lamang sa console sa ngayon, kailangan na naming lumikha ng isang UI para sa player.
Kaya lumikha ng isang panel ng UI sa Canvas. Lumipat sa 2D mode at ituon ito gamit ang F. Alisin ang imahe sa background upang makita ang UI.
Pangalanan ito Antas Kumpleto. Pag-right click at UI upang magdagdag ng teksto.
Ayusin ang mga hangganan para sa iyong teksto. Panghuli, isentro ito. Palitan ang font. Taasan ang laki ng font sa z. B. 100
Baguhin ang teksto sa Antas. Pangalanan din ang TextObject bilang isang antas. I-duplicate ang bagay at pangalanan itong Kumpleto. Itakda ang ika-2 font ayon sa kinakailangan. Kung minarkahan mo ang parehong mga bagay nang sabay, maaari mong ilipat ang mga ito nang sama-sama.
Sa katapusan i-deactivate ang "Level Kumpleto".
Muli, isang sanggunian ay kinakailangan sa GameManager.
Magagawa mo ito sa isang bagong variable:
pampublikong GameObject completeLevelUI;
Bukod dito idinagdag mo ang pagpapaandar ngayon sa ilalim
walang bisa ang pampublikongLLvel ()
{
completeLevelUI.SetActive (totoo);
Pinapagana nito ang pagpapaandar.
Ganito ang hitsura ng script:
Ngayon i-drag ang LevelComplete sa GameManager.
Kapag natapos mo ang antas, lilitaw ang Kumpleto na Antas.
Susunod na nagdagdag kami ng isang animasyon. I-activate muna ulit ang UI. Ngayon ay kailangan mo ang window ng animasyon.
Lumikha ng isang folder para sa animasyon. Pangalanan ang bagong animation na "LevelComplete". Mahahanap mo ngayon ang dalawang mga assets sa folder ng proyekto.
Ang una ay ang mismong animasyon. I-deactivate ang loop bilang ang animasyon ay dapat na maglaro nang isang beses lamang.
Ang pangalawa ay ang tagakontrol ng animation na lilitaw sa animator. Ang animator ay maaaring magamit upang magtipon at mag-link ng mga kumplikadong mga animasyon.
Ang LevelComplete na animation ay naka-highlight sa orange. Nangangahulugan ito na maglalaro ito bilang unang animasyon kapag nakumpleto ang antas.
Bumalik sa window ng animasyon. Kung ang mode ng record o ang mode ng pag-record ay na-activate, itinatala ng system ang bawat pagbabago sa object bilang mga keyframe.
Halimbawa, pumili ng 1:00 at babaan ang alpha mode ng kulay. Ang isang keyframe ay awtomatikong nilikha sa simula, kung saan ang alpha mode ay kumpleto pa rin. Lumipat sa posisyon ng mga keyframe. Bilang isang resulta, lumilitaw ang kumpletong antas sa ilalim ng pagtaas ng mode na alpha. Pumunta sa mga 0:50 at babaan ang alpha mode para sa mga kulay ng font mula sa UI. Ipagpalit ang mga kaukulang keyframes sa mga harap.
I-deactivate muli ang LevelComplete UI. Sa pagtatapos ng antas, dapat ipakita ngayon ng UI ang Antas na Kumpleto.
Pagkatapos ng ilang segundo, ang bagong antas ay dapat na ngayong mai-load pagkatapos ng ilang segundo. Upang magawa ito, magdagdag ng isang kaganapan bago ang 2-segundong marka.
Pinapayagan ka ng kaganapan ng animation na pumili ng isang pagpapaandar.
Kailangan namin ng isang script para sa LevelComplete na bagay. Naglo-load ang isang script ng isang bagong antas. Pangalanan ang bagong sangkap: LevelComplete.
Sa bagong script idagdag:
public void LoadNextLevel ()
EIN.
Maaari mo na ngayong piliin ang LoadNextLevel bilang pagpapaandar.
Kailan man makarating ang animation sa puntong ito, mai-load ang bagong eksena.
Kung gayon dapat magbago ang eksena.
Para sa mga ito kailangan mo ng tagapamahala ng eksena:
gamit ang UnityEngine.SceneManagement;
Sa ilalim ng pampublikong walang bisa ay dumating:
SceneManager.LoadScene ()
Ngayon lamang ang may-katuturang eksena ang dapat na mai-load. Gayunpaman, ang eksenang mai-load ay nakasalalay sa antas. Samakatuwid ginagamit ang BuildIndex para sa paglo-load.
Sa ilalim ng File -> Mga Setting ng Build ay ipinapakita sa iyo ng pagkakaisa ang iyong mga eksena. Maaari mo pa ring i-drag ang mga ito papasok. Sa huli ang index ng build ay ipinapakita. Dapat i-load ng pagkakaisa ang eksena ayon sa build index o sa kasalukuyang eksena + 1.
Sa ilalim ng pampublikong walang bisa na LoadNextLevel ay darating:
SceneManager.LoadScene (SceneManager.GetActiveScene (). BuildIndex + 1);
Ganito ang script:
Tiyaking laging may isang bagong eksena pagkatapos, kung hindi man ay magpapakita ng isang error ang Unity.
Orihinal na nai-post 2020-06-10 18:11:00.