我没有发现任何有用的东西可以在 Unity 中为 NavMesh 实现自定义移动和旋转。我不想使用Nav Mesh Agent
组件的转向部分,但我想使用 NavMesh 避障和寻路。
问问题
2255 次
1 回答
0
如果我理解你的问题是正确的,你想用 NavMesh 来限制你的角色移动,而不是使用对撞机。
例如,我在山上有一个机器人,我用箭头按钮控制它,我不希望它从悬崖上掉下来。
就我而言,我的角色有这个Character Controller
组件。我所要做的就是将组件与组件一起Nav Mesh Agent
添加到我的角色中。Character Controller
重要的!你的角色站立的地面应该仍然有Collider
任何类型的,比如 a Box Collider
,因为当我禁用连接到地面的 Box Collider 时,我的角色无法移动,但你不需要将碰撞器附加到你的障碍物上。制作它们Navigation Static
并烘烤就NavMesh
可以了。
我没有实现任何关于Nav Mesh Agent
组件的额外代码。我的 RobotController.cs 做得很好。
类似的Steering部分下的变量,&不会覆盖我在 RobotController 脚本中实现的变量。Nav Mesh Agent
Speed
Angular Speed
Acceleration
概括
我的角色有以下组成部分:
Character Controller
RobotController.cs
Nav Mesh Agent
按照这个顺序,RobotController.cs 就像这样简单:
if (Input.GetKey (KeyCode.UpArrow)) {
if(speed < maxVelocity)
speed += acceleration * Time.fixedDeltaTime;
else
speed = maxVelocity;
}
velocity.x = (transform.forward * speed).x;
velocity.z = (transform.forward * speed).z;
于 2018-08-26T12:15:49.483 回答