Untuk menyelesaikan tahap anda memerlukan pencetus. Buat kubus untuk ini dan timbang mengikut keperluan anda.
Pilih paksi-Y dan beralih ke pandangan isometrik dengan kubus. Seret kuboid anda ke hujung tahap atau ke tahap yang sepatutnya berakhir.
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.
Pilih ikon berwarna di tetingkap Inspektor sehingga anda masih dapat melihat kotaknya.
Sekiranya ikon tidak kelihatan, buka gizmos di Unity dan aktifkan ikon 3D dengan slaid dan gerakkan slider. Kemudian anda akan mengenali pencetus anda, walaupun tidak dapat dilihat.
Buat skrip yang dipanggil EndTrigger.
Pencetus adalah dengan
kekosongan OnTriggerEnter () dikesan
Rujukan ke GameManager kini diperlukan.
Anda membuat pemboleh ubah: public GameManager gameManager;
Dengan merujuk kepada GameManager, Anda memerlukan fungsi baru di GameManager. Itulah sebabnya anda sekarang membuka skrip GameManager.
Di dalamnya anda membuat pemboleh ubah baru:
kekosongan awam CompleteLevel ()
Anda kini telah membuat fungsi baru di GameManager:
Anda kini boleh memanggil fungsi ini dalam skrip EndTrigger:
gameManager.CompleteLevel ();
TriggerScript kini kelihatan seperti ini:
Sekarang anda menyeret GameManager ke ruang bebas skrip.
Oleh kerana mesej hanya muncul di konsol pada masa ini, kita sekarang harus membuat UI untuk pemain.
Oleh itu, buat panel UI di Canvas. Beralih ke mod 2D dan fokus padanya dengan F. Keluarkan gambar latar untuk menjadikan UI tembus pandang.
Namakannya LevelComplete. Tambahkan teks dengan klik kanan dan UI.
Laraskan had teks anda. Akhirnya, pusatkannya. Tukar fon. Tingkatkan saiz fon menjadi z. B. 100
Tukar teks ke Tahap. Namakan juga TextObject sebagai level. Gandakan objek dan namakan Selesai. Tetapkan fon ke-2 mengikut keperluan. Sekiranya anda menandakan kedua-dua objek pada masa yang sama, anda boleh menggerakkannya bersamaan.
Pada akhirnya nyahaktifkan "Tahap Selesai".
Sekali lagi, rujukan diperlukan dalam GameManager.
Anda boleh melakukan ini dengan pemboleh ubah baru:
GameObject awam lengkapLevelUI;
Selanjutnya anda menambah fungsi sekarang di bawah
kekosongan awam CompleteLevel ()
{
completeLevelUI.SetActive (benar);
Ini mengaktifkan fungsi.
Skrip sekarang kelihatan seperti ini:
Sekarang seret LevelComplete ke dalam GameManager.
Apabila anda menyelesaikan level, Level Complete akan muncul.
Seterusnya kami menambah animasi. Aktifkan UI sekali lagi. Sekarang anda memerlukan tetingkap animasi.
Buat folder untuk animasi. Namakan animasi baharu "LevelComplete". Anda kini akan menemui dua aset dalam folder projek.
Yang pertama adalah animasi itu sendiri. Nyahaktifkan gelung, kerana animasi hanya boleh dimainkan sekali sahaja.
Yang kedua adalah pengawal animasi yang muncul di animator. Animator boleh digunakan untuk memasang dan menghubungkan animasi yang kompleks.
Animasi LevelComplete diserlahkan dengan warna oren. Ini bermaksud bahawa ia akan dimainkan sebagai animasi pertama apabila tahap selesai.
Kembali ke tetingkap animasi. Sekiranya mod rakaman atau mod rakaman diaktifkan, sistem akan merekam setiap perubahan pada objek sebagai bingkai utama.
Contohnya, pilih 1:00 dan turunkan mod alfa warna. Kerangka utama dibuat secara automatik pada awal, di mana mod alfa masih lengkap. Tukar kedudukan bingkai utama. Akibatnya, tahap lengkap muncul di bawah mod alpha meningkat. Pergi ke sekitar 0:50 dan turunkan mod alpha untuk warna fon dari UI. Tukar bingkai utama yang sesuai dengan yang depan.
Nyahaktifkan UI LevelComplete sekali lagi. Pada akhir tahap, UI kini harus menunjukkan Tahap Lengkap.
Setelah beberapa saat, tahap baru kini harus dimuat setelah beberapa saat. Untuk melakukan ini, tambahkan acara sebelum tanda 2 saat.
Acara animasi membolehkan anda memilih fungsi.
Kami memerlukan skrip untuk objek LevelComplete. Skrip ini memuatkan tahap baru. Namakan komponen baru: LevelComplete.
Dalam skrip baru tambahkan:
kekosongan awam LoadNextLevel ()
a.
Sekarang anda boleh memilih LoadNextLevel sebagai fungsinya.
Setiap kali animasi sampai ke tahap ini, pemandangan baru akan dimuat.
Maka adegan harus berubah.
Untuk ini, anda memerlukan pengurus pemandangan:
menggunakan UnityEngine.SceneManagement;
Di bawah kekosongan awam datang:
SceneManager.LoadScene ()
Sekarang hanya adegan yang relevan yang harus dimuatkan. Namun, pemandangan yang akan dimuat bergantung pada tahapnya. Oleh itu, BuildIndex digunakan untuk memuatkan.
Di bawah Fail -> Build Settings Unity menunjukkan pemandangan anda. Anda mungkin masih perlu menyeretnya. Pada akhir indeks binaan dipaparkan. Unity harus memuatkan pemandangan mengikut indeks binaan atau pemandangan semasa +1.
Di bawah kekosongan awam LoadNextLevel datang:
SceneManager.LoadScene (SceneManager.GetActiveScene (). BuildIndex + 1);
Skripnya seperti ini:
Pastikan bahawa selalu ada pemandangan baru selepas itu, jika tidak, Unity akan menunjukkan kesalahan.
Asalnya diposkan 2020-06-10 18:11:00.