纳金网

标题: 用NavMeshAgent寻路时如何检测到character controller碰撞 [打印本页]

作者: may    时间: 2013-9-25 02:31
标题: 用NavMeshAgent寻路时如何检测到character controller碰撞
本帖最后由 may 于 2013-9-25 02:49 编辑

我在用unity自带的寻路系统时,给游戏角色添加了一个NavMeshAgent组件,然后又给它添加了一个character controller组件,然后寻路的时候,前面有一个正方体带boxcollider组件,这个正方体挡住了角色的路径,可是为什么角色会穿过去,请问寻路时如何检测到character controller碰撞,我知道是要用Move(),但是具体是什么思路?

作者: lsermao    时间: 2013-9-26 14:23
设定正方体为障碍物没有?NavMesh组件中有这个功能
作者: carefreeq    时间: 2013-9-27 17:10
这个好像只能在烘培路径时设置吧,碰撞物不烘路径,就行了,有参数可以设置我记得,如果有路径,碰撞似乎是不管用
作者: carronailo    时间: 2013-10-1 22:32
简单。为什么会穿过去,因为那个cube不是navMeshAgent,Unity的寻路除了会考虑烘培时候设定的障碍之外,就只处理NavMeshAgent之间的碰撞,效果上类似两个Rigidbody。
你想额外处理碰撞,而且还要不受NavMeshAgent干扰,只需要用一个新GameObject,挂上碰撞盒和处理OnTriggerEnter消息的脚本,或者挂上Rigidbody和处理OnCollisionEnter消息的脚本。原本的NavMeshAgent不管是是作为这个GameObject的父物体还是子物体都行。
作者: penguin_ku    时间: 2013-11-12 09:48
danteh 发表于 2013-10-1 21:59
角色不要直接作为NavMeshAgent的object,单独用一个cube,或者空物体来做,而角色是更随NavObject ...

这个方法好,盗走
作者: ipqso_sj    时间: 2015-10-10 13:04
给移动的障碍  加上 NavMeshObstacle组件就可以了




欢迎光临 纳金网 (http://wwww.narkii.com/club/) Powered by Discuz! X2.5