社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
教你怎么在编辑器中使用协程
GitHub 上的工程多如繁星,有些好的仓库,但凡不经意间错过了就很难找回,故稍作采撷,希望能帮助到有心人。
本文集以一个小的功能点为单位行文,也便于拾取罢!
笔者今天推荐的仓库叫 Unity Editor Coroutine,编辑器协程 。
顾名思义,这个组件就是为 编辑器脚本编程提供“异步”操作能力的,类似常规协程作用的东东啦
有了它,就可以使用协程方便的在编辑器脚本中写定时器啊,网络异步加载等等。
就像常规操作协程一样:
EditorCoroutine coroutine;
void OnGUI()
{
if (GUILayout.Button("StartByString")) //演示字符串开协程
{
this.StartCoroutine("Example");
}
if (GUILayout.Button("StartByFunc")) //演示迭代器开协程
{
//持有协程引用便于定点关闭
coroutine= this.StartCoroutine(Example());
}
if (GUILayout.Button("StopByString"))
{
//演示字符串关闭协程,该字符串将关闭该脚本下的所有同名协程
this.StopCoroutine("Example");
}
if (GUILayout.Button("StopByCoroutine"))
{
this.StopCoroutine(coroutine); //演示利用协程引用精准关闭协程
}
}
Window / Coroutine Example
Start WWW
没啥反应是因为笔者用的手机热点,网速慢导致的哈。。
常常因为 EditorWindow Notification 自动退却的太慢了而苦恼,现在有了这个组件,再也不用等待 Notification 消失了,简直是处女座福音啊(手动滑稽)。
marijnz/unity-editor-coroutines: Coroutines for Editor scripts, just like regular coroutines.
Tips:主要逻辑来自于该仓库,重构了代码,重新选择了数据结构,对API进行了增删。
本文集持续更新ing
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!