永发信息网

用NavMeshAgent寻路时如何检测到character controller碰撞

答案:4  悬赏:10  手机版
解决时间 2021-03-10 18:40
  • 提问者网友:感性作祟
  • 2021-03-10 10:35
我在用unity自带的寻路系统时,给游戏角色添加了一个NavMeshAgent组件,然后又给它添加了一个character controller组件,然后寻路的时候,前面有一个正方体带boxcollider组件,这个正方体挡住了角色的路径,可是为什么角色会穿过去,请问寻路时如何检测到character controller碰撞,我知道是要用Move(),但是具体是什么思路?
最佳答案
  • 五星知识达人网友:狂恋
  • 2021-03-10 12:06
简单。为什么会穿过去,因为那个cube不是navMeshAgent,Unity的寻路除了会考虑烘培时候设定的障碍之外,就只处理NavMeshAgent之间的碰撞,效果上类似两个Rigidbody。你想额外处理碰撞,而且还要不受NavMeshAgent干扰,只需要用一个新GameObject,挂上碰撞盒和处理OnTriggerEnter消息的脚本,或者挂上Rigidbody和处理OnCollisionEnter消息的脚本。原本的NavMeshAgent不管是是作为这个GameObject的父物体还是子物体都行。
全部回答
  • 1楼网友:痴妹与他
  • 2021-03-10 13:47
如果这个盒子是static,则可以设置为notwalkable的layer,或者直接设置navmesh obstacle。
  • 2楼网友:鱼忧
  • 2021-03-10 12:26
角色不要直接作为NavMeshAgent的object,单独用一个cube,或者空物体来做,而角色是更随NavObject
  • 3楼网友:醉吻情书
  • 2021-03-10 12:12
这个好像只能在烘培路径时设置吧,碰撞物不烘路径,就行了,有参数可以设置我记得,如果有路径,碰撞似乎是不管用
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯