pelaksanaan kelewatan perpaduan Penjelasan terperinci
Membuat kelewatan dalam perpaduan adalah penting untuk menguruskan proses permainan, peristiwa penyortiran, dan simulasi tingkah laku dunia sebenar. Berikut adalah beberapa kaedah untuk mencapai kelewatan:
<.> 1.
/ WaitForSeconds
WaitForSecondsRealtime
StartCoroutine
: pelaksanaan masa yang ditetapkan (terjejas oleh kelajuan permainan). WaitForSeconds
: pelaksanaan masa yang ditentukan (tidak terjejas oleh kelajuan permainan).
WaitForSecondsRealtime
Gunakan atau
kitaran: Secara beransur -ansur meningkatkan pemasa sehingga mencapai nilai yang diperlukan.<code class="language-C#">IEnumerator WaitForSecondsExample() { // 旋转90度 transform.Rotate(Vector3.right * 90); // 等待4秒(不受游戏速度影响) yield return new WaitForSecondsRealtime(4); // 旋转40度 transform.Rotate(Vector3.right * 40); // 等待2秒(受游戏速度影响) yield return new WaitForSeconds(2); // 旋转20度 transform.Rotate(Vector3.right * 20); }</code>
: Bayar pelaksanaan bingkai.
Time.deltaTime
while
for
yield return null
: Pelaksanaannya digantung sehingga keadaan itu benar.
<code class="language-C#">IEnumerator TimeBasedLoopExample() { // 旋转90度 transform.Rotate(Vector3.right * 90); // 等待4秒(受游戏速度影响) float timer = 0; while (timer < 4) { timer += Time.deltaTime; yield return null; } // 旋转40度 transform.Rotate(Vector3.right * 40); // 等待2秒(不受游戏速度影响) timer = 0; while (timer < 2) { timer += Time.deltaTime; yield return null; } // 旋转20度 transform.Rotate(Vector3.right * 20); }</code>
: Pelaksanaan digantung apabila keadaan itu benar.
WaitUntil
WaitWhile
<示> Contoh:
WaitUntil
WaitWhile
: Susun fungsi selepas kelewatan ditangguhkan.
: Sama seperti , tetapi fungsi itu berulang kali dipanggil dengan selang masa yang ditentukan.
<code class="language-C#">IEnumerator WaitUntilExample() { // 等待玩家分数达到100 yield return new WaitUntil(() => playerScore >= 100); // 加载下一关 SceneManager.LoadScene("NextLevel"); }</code>
Invoke
<.> 5. Berdasarkan
Invoke
InvokeRepeating
: Setiap bingkai meningkat sehingga mencapai nilai yang diperlukan.
Invoke
Contoh:
<code class="language-C#">Invoke("FeedDog", 5); // 5秒后调用FeedDog() InvokeRepeating("MovePlayer", 0.5f, 0.2f); // 每0.2秒调用MovePlayer(),持续0.5秒。</code>
menyelesaikan masalah anda: Update()
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kelewatan dalam perpaduan untuk permainan dan penjujukan acara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!