找回密码
 立即注册
查看: 413|回复: 0

Unity Navigation使用遇到的问题

[复制链接]
发表于 2021-1-5 09:57 | 显示全部楼层 |阅读模式
总结问题,分享互助。
今天使用导航网格遇到了一个报错, can only be called on an active agent that has been placed on a NavMesh.
看意思,大概是我的agent没有放在烘焙好的导航网格上。
当我在场景中直接拖拽一个agent的时候是没问题的,问题出在我动态创建一个物体,给物体增加一个NavMeshAgent组件,下面称为A,然后控制它移动或者其他相关操作。
出现问题后,我检查了A的物体的位置,我将物体完全摆放在NavMesh上,下图蓝色上,也完全没有用。
然后我尝试,将地面(下图蓝色的物体)放在(0,0,0)位置的时候,报错消失了。然后我将它放在(111,0,340)或者更大的位置上就出现了问题。不知道发生了什么。。。
如果将A的NavMeshAgent组件enable = false,隔几帧在enable = true就没问题了。但这总是旁门左道,但是到这里基本可以猜测到,一定是有地方不对导致NavMeshAgent有些数据没有初始化导致的
总之可能和位置有关系。
最后又查阅了一遍文档,发现有个函数,专门用来设置位置,就试了一下然后就对了,尴尬。。,最近最尴尬的一个问题,还花了挺久时间。。。
上解决方案:
代码创建一个NavMeshAgent之后,修改位置的时候,不要使用Transform.Position,用下面的方法

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-23 17:23 , Processed in 0.089020 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表