UNITY开发学习——寻路初级入门
寻路系统初级入门
本章目的:初步使用寻路组件,达到指哪走哪的目的。
场景准备:
1、作为地面的plane,设置静态static,然后选中plane时选择window—AI—Navigation—Back—back,以上设置十分重要。(这一步的目的是让地面成为寻路的路面,寻路组件只有在如上设置好的plane上才有效)
2、准备作为player的物体,挂上Nav Mesh Agent组件即可,其余都不用动。(组件路径在AddCompontent—Navigation—NavMeshAgent,直接在player上添加即可)
脚本准备
1、using UnityEngine.AI;
2、获取NavMeshAgent组件;
3、射线判断落点;
4、agent.SetDestination()方法,物体会自动寻路;
5、脚本挂在player物体上即可;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class NavScripts : MonoBehaviour
{
NavMeshAgent agent;
public GameObject target;
Ray ray;
RaycastHit hit;
void Start()
{
agent = this.GetComponent<NavMeshAgent>();
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
agent.SetDestination(hit.point);
}
}
}
}
以上准备好后,直接运行,鼠标点击哪物体就匀速移动到哪,但是点击和移动的位置都限制在plane内
总结:plane静态和地面渲染是必须的环节,player物体必须有Nav Mesh Agent组件,agent.SetDestination()方法寻路;