Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan jeda permainan dalam perpaduan menggunakan kaedah yang berbeza?

Bagaimana untuk melaksanakan jeda permainan dalam perpaduan menggunakan kaedah yang berbeza?

DDD
DDDasal
2025-01-31 13:22:11480semak imbas

How to Implement Game Pauses in Unity Using Different Methods?

Kaedah Pelaksanaan Pelbagai Permainan Perpaduan Permainan Perpaduan

Pengenalan

Memasukkan atau menjeda dalam permainan dapat meningkatkan interaksi dan irama permainan. Dalam Perpaduan, pelbagai teknologi boleh digunakan untuk mencapai matlamat ini.

<.> 1.

Korporat

Cara yang paling langsung adalah menggunakan WaitForSeconds coroutine. Ini akan menggantung pelaksanaan tempoh Coroutine yang ditentukan. Contohnya:

Coroutine ini mengedarkan teks kepada anda

, dengan kelewatan 3 saat antara tugasan. WaitForSeconds

<.> 2.
<code class="language-C#">IEnumerator Waiter()
{
    TextUI.text = "欢迎来到数字巫师!";
    yield return new WaitForSeconds(3);
    TextUI.text = ("你选择的最高数字是 " + max);
    yield return new WaitForSeconds(3);
    TextUI.text = ("你选择的最低数字是 " + min);
}</code>
Korporat

TextUI

Sama seperti ,

juga akan digantung, tetapi ia akan mengabaikan masa -peringatan (contohnya, untuk kesan tindakan perlahan). WaitForSecondsRealtime <.> 3.

WaitForSeconds WaitForSecondsRealtime Anda juga boleh membuat kelewatan dengan membandingkan nilai setiap bingkai dan membandingkan nilainya dengan nilai sasaran. Ini membolehkan masa menunggu dinamik dan boleh terganggu.

<code class="language-C#">IEnumerator Waiter()
{
    TextUI.text = "欢迎来到数字巫师!";
    yield return new WaitForSecondsRealtime(3);
    TextUI.text = ("你选择的最高数字是 " + max);
    yield return new WaitForSecondsRealtime(3);
    TextUI.text = ("你选择的最低数字是 " + min);
}</code>

<.> 4. FUNGSI Time.deltaTime

Fungsi ini melaksanakan coroutine sehingga ia memenuhi syarat -syarat yang ditentukan. Sebagai contoh, menunggu skor pemain mencapai nilai sasaran:

<code class="language-C#">float counter = 0;
float waitTime = 3;
bool quit = false;

void Update()
{
    if (!quit)
    {
        counter += Time.deltaTime;
    }

    if (!quit && counter >= waitTime)
    {
        // 等待时间已过时执行代码
        counter = 0;
    }
}</code>
<.> 5.

FUNGSI WaitUntil Sama seperti , fungsi ini melaksanakan coroutine, sehingga keadaan tidak lagi benar. Sebagai contoh, tunggu memegang butang:

<.> 6.
<code class="language-C#">IEnumerator Waiter()
{
    float targetScore = 100;
    yield return new WaitUntil(() => playerScore >= targetScore);
    // 加载下一关或执行所需操作
}</code>
FUNGSI

WaitWhile Ini akan mengatur fungsi yang akan dipanggil selepas kelewatan. Sebagai contoh, makan anjing selepas 5 saat:

<.> 7. WaitUntil Fungsi dan

<code class="language-C#">IEnumerator Waiter()
{
    yield return new WaitWhile(() => Input.GetKey(KeyCode.Escape));
    // 退出或执行所需操作
}</code>

Sama dengan pilihan 3, tetapi dalam fungsi Invoke, periksa keadaan:

Penyelesaian untuk masalah anda

<code class="language-C#">Invoke("feedDog", 5f);
void feedDog() { Debug.Log("正在喂狗"); }</code>

untuk mencapai kelewatan dalam kod khusus anda: Update() Time.deltaTime Gunakan COROUTINE CALL dalam fungsi atau anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan jeda permainan dalam perpaduan menggunakan kaedah yang berbeza?. 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