Unity 协程插件More Effective Coroutines Pro 学习笔记

Unity 协程插件More Effective Coroutines Pro 小记

Unity 中协程应用还是非常频繁的,但是一旦大量使用必然导致高GC出现。More Effective Coroutines Pro 插件据官方说可以大量减少GC出现,提高运行速度,那么就我使用一段时间后理一下相关的API,效率图如下,来自官方的说明文档

在这里插入图片描述
图一
在这里插入图片描述
图二

如何启动一个普通的MEC协程

下面展示一个不同的协程方式

//Unity自带
private IEnumerator UnityCoroutine()
{
 yield return new WaitForSeconds(1);
 Debug.Log("完成UnityCoroutine协程");
}
//调用
private void test1()
{
  StartCoroutine(UnityCoroutine());
}
// MEC
private IEnumerator<float> MECCoroutine()
{
   yield return Timing.WaitForSeconds(1);
    Debug.Log("完成UnityCoroutine协程");
}
//调用
private void test1()
{
  Timing.RunCoroutine(MECCoroutine());
}

进阶一点之我常用的功能API

平时我自己能用到的,协程真是我这样的菜鸟必备技能啊

//MEC等待执行完成
//在test中
IEnumerator _test()
{
//等待1秒后
yield return Timing.WaitForSeconds(1);
//先执行_test1直到完成
Timing.WaitUntilDone(Timing.RunCoroutine(_test1());
//再执行_test2直到完成
Timing.WaitUntilDone(Timing.RunCoroutine(_test2());
//执行_test3暂停
Timing.PauseCoroutines(_test3);
//执行_test3继续运行
Timing.ResumeCoroutines(_test3);
//标记执行
Timing.RunCoroutine(_test4(), "1");
Timing.RunCoroutine(_test5(), "1");
Timing.RunCoroutine(_test6(), "2");
Timing.RunCoroutine(_test7(), "2");
//干掉所有标记为1的,暂停什么的都一样操作
Timing.KillAllCoroutines("1"));
//执行单一操作,比如用户对着UI按钮一顿狂暴点击输出,但是在运行中只执行一次
Timing.RunCoroutineSingleton(_test8(), "handle", SingletonBehavior.Abort);
//点击马上干掉前一个,重新触发一个
Timing.RunCoroutineSingleton(_test9(), "handle", SingletonBehavior.Overwrite);
//点击马上加一个在队列中,上一个执行完才会执行下一个
Timing.RunCoroutineSingleton(_test10(), "handle", SingletonBehavior.Wait);
//先来几个变量
GameObject obj1,obj2,obj3;
private bool test11()
{
	return true;
}
//设定生命周期,跟随GameObject 销毁,test11方法执行完成后干掉协程
private bool test12()
{
Timing.RunCoroutine(_Coroutine().CancelWith(obj1, obj2).CancelWith(obj3).CancelWith(test11));
}
//官方案例,还没没用过感觉很不错的,突显链式本色
Timing.RunCoroutine(_TurnRight().Append(_TurnLeft()));
Timing.RunCoroutine(_MoveToFinalPosition(obj1).Append(delegate { Destroy(obj1); }));
}

总结

菜鸟一枚,以上是我的一点点心得,基本上都是官方说明上的案例,有不对的地方望指正,欢迎讨论!官方地址稍后再放,来不及了要下班了!

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值