Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan kelewatan dalam perpaduan untuk permainan dan penjujukan acara?
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>Contoh:
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!