Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk melaksanakan kelewatan dalam perpaduan untuk permainan dan penjujukan acara?

Bagaimana untuk melaksanakan kelewatan dalam perpaduan untuk permainan dan penjujukan acara?

DDD
Lepaskan: 2025-01-31 13:06:10
asal
922 orang telah melayarinya

How to Implement Delays in Unity for Gameplay and Event Sequencing?

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

    : Declarier fungsi coroutine.
  • StartCoroutine : pelaksanaan masa yang ditetapkan (terjejas oleh kelajuan permainan).
  • WaitForSeconds: pelaksanaan masa yang ditentukan (tidak terjejas oleh kelajuan permainan).
  • Contoh: WaitForSecondsRealtime
  • <.> 2. Kitaran berasaskan masa

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>
Salin selepas log masuk

: Bayar pelaksanaan bingkai.

  • Contoh: Time.deltaTime while for
  • <.> 3.
  • / FUNGSI 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>
Salin selepas log masuk
<<>

: Pelaksanaan digantung apabila keadaan itu benar. WaitUntil WaitWhile <示> Contoh:

  • <.> 4. FUNGSI 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>
Salin selepas log masuk
Contoh:

Invoke <.> 5. Berdasarkan

kelewatan
  • Invoke
  • : Digunakan untuk mengukur masa antara bingkai.
  • Pembolehubah pemasa InvokeRepeating: Setiap bingkai meningkat sehingga mencapai nilai yang diperlukan. Invoke
  • Pernyataan
: Periksa sama ada pemasa mencapai nilai yang diperlukan dan laksanakan kod yang diperlukan.

Contoh:

<code class="language-C#">Invoke("FeedDog", 5); // 5秒后调用FeedDog()

InvokeRepeating("MovePlayer", 0.5f, 0.2f); // 每0.2秒调用MovePlayer(),持续0.5秒。</code>
Salin selepas log masuk

menyelesaikan masalah anda: Update()

Untuk membuat kelewatan apabila teks dipaparkan dalam skrip anda, anda boleh menggunakan kod berikut:

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan