Unity - 在编辑模式正确运行Coroutines.
环境:
Unity2019.4, Windows 10
问题:
在编辑模式下,某些Coroutine可以正确运行,但是如果IEnumerator中含有while或for循环,那么Coroutine会卡在循环中,此时只有手动更新Editor(例如在Inspector中输入,或在Scene中移动某个GameObject),Coroutine才会继续迭代。
推测原因:
IEnumerator所依赖的某些刷新机制在Edit Mode下没有被自动执行。
解决:
在Monobehaviour或Editor类中使用EditorApplication.update callback 配合EditorApplication.QueuePlayerLoopUpdate 强制更新。
实现:
MonoBehaviour version:
[ExecuteInEditMode]
public class EditModeUpdateHandler : MonoBehaviour
{
...
void OnEnable()
{
#if UNITY_EDITOR
UnityEditor.Edi

本文介绍了如何在Unity 2019.4的编辑模式下解决Coroutine在IEnumerator包含循环时卡顿问题,通过EditorApplication.update回调和QueuePlayerLoopUpdate实现非Play模式下的Coroutine更新,确保Coroutine在EditorMode下的流畅执行。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



