Navgation分层寻路
分层寻路应用场景
比如在王者荣耀中小兵按照上中下3条路运动到目标点,所以上路小兵不能往中路跑。就需要小兵按照指定的路径行动。
如何实现
我么在游戏中可以将Navigation 烘焙的网格划分不同的区域,并定义角色可以在哪些区域行走,以达成分层寻路的目的
Name–>定义层的名称 Cost–>区域的开销 开销值越大 优先级越低
1.搭建场景
2.设计Navigation Area的分层
3.设计Object 属于哪个区域
4.烘焙导航网格
**5.创建个角色 设置目标点 **
角色添加Nav Mesh Agent 组件 设置角色能走哪个层
角色添加下面脚本
using UnityEngine;
using UnityEngine.AI;
public class RoleCtrol : MonoBehaviour
{
public Transform endPos;
public NavMeshAgent agent;
public float speed = 5;
void Start()
{
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
float dis = Vector3.Distance(transform.position, endPos.position);
if (dis > 0.1f)
{
agent.speed = speed;
agent.SetDestination(endPos.position);
}
}
}
}
6.运行 Nav Mesh Agent AreaMask设置哪个层 会自动走那个层