Rumah >pembangunan bahagian belakang >C++ >Mengapa Skrip Pengurus Permainan Perpaduan Saya Hanya Dijalankan Sekali, dan Bagaimana Saya Boleh Menjadikannya Berterusan Merentasi Tabir?
Pengurus Permainan Perpaduan: Isu dan penyelesaian kegigihan merentas senario
Soalan:
Skrip Pengurus Permainan yang direka bentuk untuk berterusan merentas babak hanya akan dilaksanakan sekali pada permulaan projek, walaupun terdapat dalam semua babak.
Sebab:
Setiap projek Unity memerlukan "adegan pramuat" sebagai hab pusat untuk objek dan sistem yang berterusan. Senario ini mesti dinyatakan sebagai senario 0 dalam tetapan binaan.
Penyelesaian:
Buat adegan pramuat:
Tambah objek permainan yang dipramuat:
Mohon DontDestroyOnLoad:
Letakkan gelagat biasa dalam adegan pramuat:
Cari komponen dalam adegan lain:
Untuk mengakses komponen berterusan ini daripada adegan lain, anda boleh menggunakan kaedah statik "Object.FindObjectOfType
<code class="language-C#">SoundEffects sound = Object.FindObjectOfType<SoundEffects>(); GameState state = Object.FindObjectOfType<GameState>();</code>
Pengoptimuman pilihan:
Untuk mengurangkan pertindihan kod, pertimbangkan untuk menggunakan skrip global berikut:
<code class="language-C#">public static class App { public static SoundEffects SoundEffects { get; private set; } public static GameState GameState { get; private set; } static App() { GameObject appObject = GameObject.Find("__app"); SoundEffects = appObject.GetComponent<SoundEffects>(); GameState = appObject.GetComponent<GameState>(); } }</code>
Menggunakan skrip ini, anda boleh mengakses komponen ini menggunakan sintaks yang dipermudahkan:
<code class="language-C#">App.SoundEffects.PlayExplosion(); App.GameState.CurrentLevel = 5;</code>
Kemudahan pembangunan:
Untuk meningkatkan kecekapan pembangunan, anda boleh mempertimbangkan untuk menambah skrip pada adegan "pramuat" Jika objek "__app" tidak wujud, adegan "pramuat" akan dimuatkan secara automatik semasa pemulaan projek. Ini memastikan bahawa permainan bermula dari adegan "pramuat" setiap kali "Main" diklik.
Atas ialah kandungan terperinci Mengapa Skrip Pengurus Permainan Perpaduan Saya Hanya Dijalankan Sekali, dan Bagaimana Saya Boleh Menjadikannya Berterusan Merentasi Tabir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!