[LayaAir3]Layaair3.3.0-beta.4中2D导航数据清理报错
直接销毁所有子节点(this.roleBox.destroyChildren();)中添加了Laya.Nav2DAgent代理导航时会报错:
比如子节点有三个角色,其中两个角色正在寻路时,第三个角色执行了销毁所有子节点(this.roleBox.destroyChildren();)必然会报错
SpriteGlobaTransform.js:106
Uncaught TypeError: Cannot read properties of null (reading 'globalTrans')
at SpriteGlobalTransform.setPos (SpriteGlobaTransform.js:106:36)
at Nav2DAgent._updatePosition (Nav2DAgent.js:47:32)
at Nav2DAgent._updateNavMesh (BaseNavAgent.js:289:14)
at BaseNavMesh.js:185:19
at Map.forEach (<anonymous>)
at NavMesh2D._updateNavMesh (BaseNavMesh.js:181:25)
at NavMesh2DSurface._update (BaseNavMeshSurface.js:203:27)
at BaseNavigationManager.js:130:35
at Map.forEach (<anonymous>)
at Navigation2DManage.update (BaseNavigationManager.js:128:28)
然而在销毁所有子节点(this.roleBox.destroyChildren();)前面加上navMesh2DSurface.enabled = false就不会报错。
但是使用了navMesh2DSurface.enabled = false后再使用navMesh2DSurface.enabled = true导航不起作用了。
比如子节点有三个角色,其中两个角色正在寻路时,第三个角色执行了销毁所有子节点(this.roleBox.destroyChildren();)必然会报错
SpriteGlobaTransform.js:106
Uncaught TypeError: Cannot read properties of null (reading 'globalTrans')
at SpriteGlobalTransform.setPos (SpriteGlobaTransform.js:106:36)
at Nav2DAgent._updatePosition (Nav2DAgent.js:47:32)
at Nav2DAgent._updateNavMesh (BaseNavAgent.js:289:14)
at BaseNavMesh.js:185:19
at Map.forEach (<anonymous>)
at NavMesh2D._updateNavMesh (BaseNavMesh.js:181:25)
at NavMesh2DSurface._update (BaseNavMeshSurface.js:203:27)
at BaseNavigationManager.js:130:35
at Map.forEach (<anonymous>)
at Navigation2DManage.update (BaseNavigationManager.js:128:28)
然而在销毁所有子节点(this.roleBox.destroyChildren();)前面加上navMesh2DSurface.enabled = false就不会报错。
但是使用了navMesh2DSurface.enabled = false后再使用navMesh2DSurface.enabled = true导航不起作用了。
没有找到相关结果
已邀请:
要回复问题请先登录
0 个回复