Unity 3D

来源:互联网 发布:mac使用windows软件 编辑:程序博客网 时间:2024/06/05 09:54

Unity 3D - 导航系统 ( NavMesh ) :

效果图 :

这里写图片描述

这里写图片描述

Agent Size ( 代理尺寸 ) :

名称 作用 Radius 半径 代理半径 ( 仅用于寻路目的,可以跟实际对象的半径大小不一样,一般比实际对象的半径大 ) Height 高度 代理高度 ( 和可通过高度有关 , 通常用于调试图形 ) Base offset 基本偏移 碰撞几何体相对于实际几何体垂直的偏移

Steering ( 导航掌控数值 ) :

名称 作用 Speed 速度 移动到目的地的最大移动速度 Angular Speed 角速度 最高转速(度/秒) Acceleration 加速度 最大加速度 Stopping distance 制动距离 制动距离 ( 到目的地的距离小于这个值 , 代理减速 ) Auto Braking 自动断开 是否自动断开寻路

Obstacle Avoidance ( 避障 ) :

名称 作用

Path Finding ( 寻路 ) :

名称 作用 Auto Traverse OffMesh Link自动遍历OffMesh链接 自动移动并关闭OffMeshLinks Auto Repath 自动重新寻路 如果现有的部分已失效,获得新的路径

这里写图片描述
Object ( 物体参数面板 ) :

名称 作用 Navigation Static 勾选后表示该对象参与导航网格的烘培 OffMeshLink Generation 勾选后可跳跃(Jump)导航网格和下落(Drop)

这里写图片描述
Bake ( 烘培参数面板 ) :

名称 作用 Radius 具有代表性的物体半径,半径越小生成的网格面积越大 Height 具有代表性的物体的高度 Max Slope 斜坡的坡度 Ste Height 台阶高度 Drop Height 允许最大的下落距离 Jump Distance 允许最大的跳跃距离 Min Region Area 网格面积小于该值则不生成导航网格 Width Inaccuracy 允许最大宽度的误差 Height Inaccuracy 允许最大高度的误差 Height Mesh 勾选后会保存高度信息,同时会消耗一些性能和存储空间

注意 :

  • 需要引入命名空间 using UnityEngine.AI;
  • 修改Navigation 中的 Object 的对应属性 , 如图 .
  • Navigation Area 是 定义类型 (默认三种 : 可通过 , 不可通过 , 跳跃) .
    这里写图片描述

C# Demo :

using UnityEngine;using UnityEngine.AI;public class MoveToClickPoint : MonoBehaviour {    NavMeshAgent agent;    void Start() {        agent = GetComponent<NavMeshAgent>();    }    void Update() {        if (Input.GetMouseButtonDown(0)) {            RaycastHit hit;            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100)) {                agent.destination = hit.point;            }        }    }}

变量 :

destination 导航朝目的地。

stoppingDistance 在这个距离内停止从目标位置。

velocity navmesh代理组件的当前速度。

nextPosition 路径上的下一个位置。

remainingDistance 当前路径上的剩余距离。

baseOffset 拥有游戏物体的相对垂直位移。

isOnOffMeshLink 代理目前定位上OffMeshLink。

autoTraverseOffMeshLink 自动运动到和关闭OffMeshLinks。

autoRepath 试图获取一个新的路径,如果现有的路径变为无效

hasPath 代理目前有一个路径。

pathPending 正在计算路径,但还没有准备好

isPathStale 当前路径陈旧。

pathStatus 查询当前路径的状态。

walkableMask 指定巫NavMesh层是差强人意(位域)。更改walkableMask将陈旧的路径(见isPathStale)

speed 最大移动速度。

angularSpeed 最高转速(deg / s的)。

acceleration 最大加速度

updatePosition 如果代理更新变换位置。

updateRotation 如果代理更新变换方向。

radius 代理半径。

height 代理的高度。

obstacleAvoidanceType 避免质量水平

方法 :

SetDestination 设置或更新的目标。这会触发一个新的路径计算。

ActivateCurrentOffMeshLink 启用或禁用当前 链接。

GetCurrentOffMeshLinkData 提取当前的OffMeshLink状态。

GetCurrentOffMeshLinkGameObject 参考当前OffMeshLink的游戏对象。

CompleteOffMeshLink 终止电流OffMeshLink。

Move 当前位置应用相对运动。

Stop 停止代理的运动沿着目前的道路。

Resume 恢复运动沿着目前的道路。

ResetPath 清除当前路径。请注意,代理将开始寻找一条新的道路,直到SetDestination被称为。

SetPath 指定代理的路径。

DistanceToEdge 找到最近的NavMesh边缘。

Raycast 对一个目标位置的NavMesh的跟踪运动。不移动代理。

SamplePathPosition 采样沿着目前的道路位置。

SetLayerCost 设置为以上的层类型的几何遍历成本。

GetLayerCost 获取超过该层类型的几何遍历成本。

1 0
原创粉丝点击