public DelayedCall(float delay, Action callback)
{
this.delay = delay;
this.callback = callback;
this._startupTime = Time.realtimeSinceStartup;
EditorApplication.update = (EditorApplication.CallbackFunction)Delegate.Combine(EditorApplication.update, new EditorApplication.CallbackFunction(this.Update));
}
private void Update()
{
if (Time.realtimeSinceStartup - this._startupTime >= this.delay)
{
if (EditorApplication.update != null)
{
EditorApplication.update = (EditorApplication.CallbackFunction)Delegate.Remove(EditorApplication.update, new EditorApplication.CallbackFunction(this.Update));
}
if (this.callback != null)
{
this.callback();
}
}
}
在别人插件中看到的一种写法,可以很方便的在Editor中实现DelayCall和在Editor中实现Update 虽然没什么用吧 逃0.0
本人知识不足,水平有限,如有疏漏或错误,欢迎指正
本文介绍了一种在Unity Editor环境中实现延时调用的方法,通过自定义publicDelayedCall函数,结合EditorApplication.update委托,实现了指定延迟时间后的回调操作。此技巧适用于需要在编辑器中进行定时任务的场景。
367

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



