最近做项目时遇到下面这种问题:
在Monobehavior脚本A中设置物体B的transform.position,同时由于物体B添加了Nav agent组件和控制寻路的脚本C。在物体B刚开始被激活并随机改变其位置后,会发现其位置并未处在随机获得的位置,而是莫名其妙的产生了一段偏移,很诡异。刚开始并没怀疑是自动寻路组件和直接修改transform.position的脚本互相产生了影响,导致这个诡异事件,纠结了很久,最后想到了原因,于是在A中更改transform.position之前禁用掉nav agent组件,之后再满足条件执行nav agent操作时在开启该组件即解决了问题。
于是产生了疑问:自动寻路组件的是另外开的一个线程对物体位置进行计算改变的吗?unity中到底有哪些系统是独立开的线程进行计算的?路过的大神们如有什么想法还望分享之,不胜感激。