1、给地形添加一个标签
2、烘焙地形
3、给主角绑定导航代理组件
public class PlayerMouseMove02 : MonoBehaviour {
public GameObject arow;//箭头
void Start () {
}
void Update () {
//获取主角的Animator组件,设置布尔值
GetComponent<Animator>().SetBool("isRun", GetComponent<UnityEngine.AI.NavMeshAgent>().velocity.magnitude > 0);
if (Input.GetMouseButtonDown(0))
{
//鼠标按下,发射射线
//静态属性, -1,全局唯一的属性,你可以通过类名很[方便]的调用。
//如果是对象的属性,你就要先找到对象,再调用属性,很麻烦。//GameObject.Find()
//Input.mousePosition是获取鼠标点击的象素点
//ScreenPointToRay是按象素来创建射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;//碰撞点
if (Physics.Raycast(ray,out hit, 1000.0f))
{
print(hit.collider.tag);
//判断是否碰到了地面
//hit.collider 碰撞到的东西
if (hit.collider.tag == Tags.Ground)
{
print("碰撞到地面");
//hit.point获取鼠标点击的位置
//Quaternion.identity 四元数默认没有旋转
Instantiate(arow,hit.point,Quaternion.identity);
//设置导航坐标
GetComponent<UnityEngine.AI.NavMeshAgent>().SetDestination(hit.point);//设置目标点
}
}
}
}
}