Nav Mesh Agent自导航代理
导航网格代理,是用来自动寻路i的
AI
自动寻路是AI中行为层面的东西,
思考,判断,行为
使用这个东西需要引用
using UnityEngle.AI;
这个命名空间。
自动寻路
使用一个空物体来装场景地图,
然后 Window _Navigation,再将Inperctor面板有个static(右上角)换成Navigation static,再nacigation面板找到单击bake,换场景要重新bake
寻路控制器
//寻路控制器,鼠标点哪里就会走到哪里
public class NavMeshCtrl : MonoBehaviour {
UnityEngine.AI.NavMeshAgent agent;
// Use this for initialization
void Start ()
{
agent = GetComponent<UnityEngine.AI.NavMeshAgent>();
}
void Update () {
if (Input.GetMouseButtonDown(0))
{
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit castHit;
if (Physics.Raycast(ray,out castHit))
{
var point = castHit.point;
agent.SetDestination(point);
}
}
}
}
使用键盘来控制移动
UnityEngine.AI.NavMeshAgent agent;
public float MoveSpeed = 10;
agent = GetComponent<UnityEngine.AI.NavMeshAgent>();
if (Input.GetKey(KeyCode.A))
{
agent.velocity = -transform.right * MoveSpeed;
}
位置的判断
if (agent.remainingDistance > 0)
{
Debug.Log("走动");
}
else
{
Debug.Log("停止");
}
用于寻路系统位置的判断