Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan kelewatan dalam skrip perpaduan?

Bagaimana untuk melaksanakan kelewatan dalam skrip perpaduan?

Patricia Arquette
Patricia Arquetteasal
2025-01-31 13:17:11912semak imbas

How to Implement Delays in Unity Scripts?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn