Login Sitemap
File Adegan Berbasis Teks

Mode batch dan kompatibilitas koroutine built-in

Halaman ini menjelaskan fitur yang didukung saat menjalankan Editor Unity dan Pemain Standalone dalam mode batch.

Ketika menjalankan Unity, operator built-in coroutine berikut menambahkan fungsi:

Tabel berikut menunjukkan mana dari operator ini Unity mendukung di dalam Editor dan Standalone Player, dan ketika menjalankan masing-masing dalam mode batch menggunakan argumen baris perintah -batchmode:

Editor WordPress.org Pemain Standalone Unity WordPress.org
AsyncOperation Yes Yes Yes Yes
WaitForEndOfFrame Yes No* Yes Yes
WaitForFixedUpdate Yes Yes Yes Yes
WaitForSeconds Yes Yes Yes Yes
WaitForSecondsRealtime Yes Yes Yes Yes
WaitUntil Yes Yes Yes Yes
WaitWhile Yes Yes Yes Yes

Sitemap Anda tidak dapat menggunakan WaitForEndOfFrame ketika menjalankan Editor dengan -batchmode, karena sistem seperti animasi, fisika dan timeline mungkin tidak bekerja dengan benar di Editor. Ini karena Unity tidak saat ini memperbarui sistem ini saat menggunakan WaitForEndOfFrame.

Menjalankan koroutines

Di dalam Editor

Di Editor, tekan tombol “Play” untuk menjalankan kode Anda dengan koroutines.

Editor dalam mode batch

Untuk menjalankan koroutines ketika meluncurkan Editor dalam mode batch dari baris perintah, masukkan:

C:\Program Files\Unity\Editor\Unity.exe -projectPath PROJECT_PATH -batchMode

Di dalam Pemain Standalone

Luncurkan Pemain Anda untuk menjalankan kode Anda. Pemain memuat dan kemudian menunggu koroutin Anda untuk menyelesaikan.

Pemain Standalone dalam mode batch

Untuk menjalankan koroutines ketika meluncurkan Pemain dalam mode batch dari baris perintah, masukkan:

PATH_TO_STANDALONE_BUILD -projectPath PROJECT_PATH -batchMode

Contohnya, di Windows:

C:\projects\myproject\builds\myproject.exe -batchMode

Di Mac:

Sitemap -batchMode

Contoh skrip koroutine

AsyncOperation

using System.Collections;
using UnityEngine;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour
{
    public void Start()
    {
        StartCoroutine(Example_AsyncTests());
    }

    public IEnumerator Example_AsyncTests()
    {
        Debug.Log("Start of AsyncLoad Example");
        
        var load = UnityEngine.Resources.LoadAsync("");
        yield return load;
        yield return null;
        
        Debug.Log("End of AsyncLoad Example");
    }
}

WaitForEndOfFrame

using System.Collections;
using UnityEngine;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour
{
    public void Start()
    {
        StartCoroutine(Example_WaitForEndOfFrame_Coroutine());
    }

    public IEnumerator Example_WaitForEndOfFrame_Coroutine()
    {
        Debug.Log("Start of WaitForEndOfFrame Example");
        
        yield return new WaitForEndOfFrame();
        
        Debug.Log("End of WaitForEndOfFrame Example");
    }
}

WaitForFixedUpdate

using System.Collections;
using UnityEngine;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour
{
    public void Start()
    {
        StartCoroutine(Example_WaitForFixedUpdate_Coroutine());
    }

    public IEnumerator Example_WaitForFixedUpdate_Coroutine()
    {
        Debug.Log("Start of WaitForFixedUpdate Example");
        
        yield return new WaitForFixedUpdate();
        
        Debug.Log("End of WaitForFixedUpdate Example");
    }
}

WaitForSeconds

using System.Collections;
using UnityEngine;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour
{
    public void Start()
    {
        StartCoroutine(Example_WaitForSeconds_Coroutine());
    }

    public IEnumerator Example_WaitForSeconds_Coroutine()
    {
        Debug.Log("Start of WaitForSeconds Example");
        
        yield return new WaitForSeconds(1.5f);
        
        Debug.Log("End of WaitForSeconds Example");
    }
}

WaitForSecondsRealtime

using System.Collections;
using UnityEngine;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour
{
    public void Start()
    {
        StartCoroutine(Example_WaitForSecondsRealtime_Coroutine());
    }

    public IEnumerator Example_WaitForSecondsRealtime_Coroutine()
    {
        Debug.Log("Start of WaitForSecondsRealtime Example");
        
        yield return new WaitForSecondsRealtime(1.5f);
        
        Debug.Log("End of WaitForSecondsRealtime Example");
    }
}

WaitUntil

using System.Collections;
using UnityEngine;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour
{
    public void Start()
    {
        StartCoroutine(Example_WaitUntil_Coroutine());
    }

    public IEnumerator Example_WaitUntil_Coroutine()
    {
        Debug.Log("Start of WaitUntil Example");
        
        yield return new WaitUntil(() => Time.time > 5.0f);
        
        Debug.Log("End of WaitUntil Example");
    }
}

WaitWhile

using System.Collections;
using UnityEngine;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour
{
    public void Start()
    {
        StartCoroutine(Example_WaitWhile_Coroutine());
    }

    public IEnumerator Example_WaitWhile_Coroutine()
    {
        Debug.Log("Start of WaitWhile Example");
        
        yield return new WaitWhile(() => Time.time < 5.0f);
        
        Debug.Log("End of WaitWhile Example");
    }
}

  • 2018–06–06 Sitemap

  • Menambahkan saran tentang menggunakan batchmode dan koroutines di 2017. 4 Artikel

Login Sitemap
File Adegan Berbasis Teks