代码之家  ›  专栏  ›  技术社区  ›  ATHellboy

统一的定制纳维梅什运动和旋转

  •  0
  • ATHellboy  · 技术社区  · 6 年前

    我找不到任何有用的东西来实现navmesh在unity中的自定义移动和旋转。我不想使用 Nav Mesh Agent 组件,但我想使用NavMesh障碍回避和寻路。

    1 回复  |  直到 6 年前
        1
  •  0
  •   madbuggerswall    6 年前

    如果我理解你的问题是正确的,你应该用NavMesh来限制角色的移动,而不是使用碰撞器。

    例如,我有一个 机器人 在我用箭头按钮控制的山丘上,我不希望它从悬崖上掉下来。

    就我而言,我的角色 Character Controller 组件。我要做的就是加上 Nav Mesh Agent 我性格的组成部分, 沿着 这个 字符控制器 组件。

    重要! 你的角色所站的地面应该还有 Collider 任何类型的,像 Box Collider ,因为当我禁用附加到地面的长方体碰撞器时,我的角色无法移动,但不需要将碰撞器附加到障碍物上。制造它们 Navigation Static 烘烤 NavMesh 做到了。

    我没有实现任何关于 导航网格代理 组件。我的RobotController.cs做得很好。

    下的变量 驾驶 剖面图 导航网格代理 喜欢 Speed , Angular Speed 和; Acceleration 不重写我在RootMutualScript脚本中实现的那些。

    概要

    我的角色有几个组成部分:

    • 字符控制器
    • RobotController.cs
    • 导航网格代理

    按照这个顺序,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;