Unity WaitForEndOfFrame 介紹
分類
建立時間: 2024年10月7日 02:33
更新時間: 2024年10月7日 02:44
說明
WaitForEndOfFrame 是 Unity 中 yield 關鍵字的基底類別,用於等待當前幀的所有渲染操作完成後再執行後續的程式碼。這個功能非常適合處理需要在每幀末尾執行的任務。
使用情境
這是我發生的情境
gameObject.transform.position = position;
gameObject.SetActive(true);
在我部署到 iOS 運行應用程式時,gameObject
會出現瞬移的情況,原因可能是因為渲染的關係,遊戲物件先顯示了,但設定新位置還沒被渲染,導致遊戲物件出現瞬移。
此時可以使用 WaitForEndOfFrame()
等待渲染後再激活遊戲物件。
範例
這裡參考 Unity 官方文件的範例,將其改寫,重點是使用 StartCoroutine()
會比較方便一點。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
private IEnumerator coroutine;
private void Start()
{
coroutine = RunAfterAFrame();
StartCoroutine(coroutine);
}
private IEnumerator RunAfterAFrame()
{
// 等待一幀格
yield return new WaitForEndOfFrame();
gameObject.SetActive(true);
}
}
這裡給出最基本的 WaitForEndOfFrame()
情境,讀者們可以觸類旁通,應用在各種用途。
參考
觀看次數: 84
unityWaitForEndOfFrame
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!