Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan kelewatan dalam skrip perpaduan?
Kaedah Pelaksanaan Kelewatan Skrip Perpaduan Penjelasan Terperinci
Dalam pembangunan permainan perpaduan, kelewatan penyisipan sering diperlukan untuk dimasukkan antara peristiwa permainan atau pergerakan. Artikel ini akan memperkenalkan beberapa kaedah untuk melaksanakan kelewatan skrip perpaduan, dari Simple to Advanced.
<.> 1. Gunakan coroutine dan waitforseconds
Cara paling mudah adalah menggunakan korporat dan . Contoh seperti berikut:
<.> 2. Gunakan coroutine dan waitforsecondsrealtime WaitForSeconds
<code class="language-C#">IEnumerator waiter() { // 等待4秒 yield return new WaitForSeconds(4); // 延迟后执行的操作 } StartCoroutine(waiter());</code>Sama seperti , tetapi tidak terjejas oleh
.
<.> 3. Coroutine berdasarkan pengesanan masa WaitForSeconds
Time.timeScale
Jika pemasa perlu dipaparkan, anda boleh menggunakan kaedah ini.
<code class="language-C#">IEnumerator waiter() { // 等待4秒真实时间 yield return new WaitForSecondsRealtime(4); // 延迟后执行的操作 }</code>
<.> 4. Gunakan Waituntil Coroutine
Pelaksanaan tempat letak kereta sehingga ia memenuhi syarat -syarat yang ditentukan.
<code class="language-C#">IEnumerator waiter() { float elapsedTime = 0; float waitTime = 4; while (elapsedTime < waitTime) { elapsedTime += Time.deltaTime; // 更新计时器显示 yield return null; } // 延迟后执行的操作 }</code><.> 5. Gunakan Waitwhile Coroutine
Selagi keadaan yang ditentukan adalah benar, pelaksanaannya digantung.
<.> 6. Gunakan fungsi Invoke
<code class="language-C#">IEnumerator waiter() { Debug.Log("等待玩家分数达到或超过100"); yield return new WaitUntil(() => playerScore >= 100); // 条件满足后执行的操作 }</code>
Susun fungsi selepas kelewatan ditentukan.
<.> 7. Gunakan fungsi kemas kini () dan time.deltatime
<code class="language-C#">IEnumerator waiter() { Debug.Log("等待退出按钮按下"); yield return new WaitWhile(() => !Input.GetKeyDown(KeyCode.Escape)); // 条件为假(按下退出按钮)后执行的操作 }</code>
Gunakan masa kumulatif dan operasi pencetus apabila mencapai ambang.
Penyelesaian untuk masalah tertentu
<code class="language-C#">Invoke("feedDog", 5); // 5秒后调用feedDog()函数</code>memasukkan jeda antara tugasan , anda boleh menggunakan coroutine berikut:
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kelewatan dalam skrip perpaduan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!