一、描述:一个角色在特定环境下自动到达指定目标。
导航网格(NavMesh)
1、设置导航静态物体(NavigationStatic)
2、烘焙网格前的设置a.打开Navigation窗口
b.设置角色Size
Agent Radius(角色半径)、Agent Height(角色高度)、Max Slope(角色可以爬的最大坡度)、Step Height(角色可以上的台阶高度)
c.Bake烘焙
导航角色(NavMeshAgent)
面板属性:
AgentSize(角色大小):、Radius(半径)、Height(高度)、Base Offset(偏移量量)导航角色与网格中心点的偏移量
Steering(导航过程):Speed(导航过程中角色的最大速度)、AngularSpeed(角速度)、Acceleration(加速度)、Stoping Distance(停止距离) 当前角⾊色距离目标多远时停下、Auto Breakting(自动减速) 当角色快达到目标时自动减速
Obstacle Avoidance(躲避障碍物):Quality(导航质量量)、Priority(优先级)、Path Finding(寻路设置)、Auto Traverse Off Mesh Link 自动跨越分离路面、Auto Repath 自动重新规划路、Area Mask 分层剔除(设置角色可以走哪些层)
常用属性与方法:
SetDestination(Vector3) 设置导航目标、Stop() 停止导航、Resume() 恢复导航、CalculatePath、判断当前角色能否通过导航的方式到达一个目标、desireVelocity 期望速度、velocity 实际速度、destination 目标点、remainingDistance 剩余距离、updatePosition 通过导航更更新位置、updateRotation 通过导航更新旋转
分离路面导航
普通分离路面
1、设置分离路面静态2、分离路面跳跃设置:Drop Height 跳下的高度、Jump Distance 跳远距离
高级分离路面:1、两个跳跃点(最好是在导航网格上)2、添加一个OffMeshLink组件3、将两个跳跃点对象拖拽到OffMeshLink组件中StartEnd
分层路面导航
1、给不不同的路面设置不不同的导航层(Navigation Area)2、给角色设置AreaMask,设
置角色可以走哪些层代码中设置areaMask,所有选层,2的编号次幂的和
选中物体烘焙
选中然后烘焙这个物体
烘焙 设置 设置 设置还需要添加Nav Mesh Agent组件 物体导航 烘焙 导航代理
Nav Mesh Agent依次为:
Nav Mesh Agent:导航组建参数面板
Radius:物体的半径
Speed:物体的行进最大速度
Acceleration:物体的行进加速度
Augular Speed:行进过程中转向时的角速度。
Stopping Distance:离目标距离还有多远时停止。
Auto Traverse Off Mesh Link:是否采用默认方式度过链接路径。
Auto Repath:在行进某些原因中断后是否重新开始寻路。
Height:物体的高度。
Base Offset:碰撞模型和实体模型之间的垂直偏移量。
Obstacle Avoidance Type:障碍躲避的的表现登记,None选项为不躲避障碍,另外等级越高,躲避效果越好,同时消耗的性能越多。
Avoidance Priority:躲避优先级。
NavMesh Walkable:该物体可以行进的网格层掩码。
Nav Mesh Obstacle :动态障碍物
Nav Mesh Obstacle就是你移动到自己写的范围时烘焙 当你静止多长时间后开始烘焙
Off Mesh Link :手动传送,自定义传送组件
Off Mesh Link示例代码:
代码Particle System :粒子特效
简单功能 颜色 重力 播放量 设置 设置 设置 粒子END
网友评论