求助!!!
unity3d吧
全部回复
仅看楼主
level 4
在下了
楼主
老哥们 这个移动的while为什么要写携程里跟正常写方法上有什么不一样嘛
2024年06月27日 08点06分
1
level 4
在下了
楼主
怎么变成这样就死循环卡死在那里了
2024年06月27日 08点06分
2
level 5
迎来落阳▫
首先你该了解协程的工作原理,了解了你自然就懂了。
然后你为什么会死循环,因为while的条件满足了,所以它就一直执行,虽然你在while里面重新赋值了agent的字段值,但是这是单线程,并不是这个while在循环时attacktarget也一直在走的,所以你agent获取到的一直是同一个值,while条件一直是满足,就导致了死循环
2024年06月27日 14点06分
3
level 8
稻香9527
小改一下 把你的代码 放在Update()方法里面 因为Update()就是循环 大约每0.02秒调用一次 再把while改成if就可以了 当然了 前面还要多加几个if,让程序知道是进入了“moveToTarget”状态 你懂的 就不需要什么鬼协程了
2024年06月28日 01点06分
4
稻香9527
而单纯地在一个地方 不加考虑地用while 而你这个while很明显是超过0.02秒 0.02秒是U3D的一次线程循环时间 你都占完了 其它的代码都没有机会运行 程序就卡死了
2024年06月28日 01点06分
1