射线
导航系统——自动寻路
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class MovePlay : MonoBehaviour
{
private NavMeshAgent myAgent;//存放移动物体上的导航组件
public GameObject target;//物体移动到的目标点
// Start is called before the first frame update
void Start()
{
myAgent = this.GetComponent<NavMeshAgent>();//得到移动物体上的导航组件
myAgent.destination = target.transform.position;//指定物体到目标职位
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(1))//按下鼠标右键
{
//Ray 定义射线的发射点 发射方向沿Z轴的方向发射(默认值)
Ray mray = Camera.main.ScreenPointToRay(Input.mousePosition);//摄像机向鼠标位置发射射线
RaycastHit mHit;//检测射线碰撞到的物体
if (Physics.Raycast(mray,out mHit))//碰撞检测 物理属性发射一条射线
{
if (mHit.collider.gameObject.tag=="Plane")//给可以行走的物体增加标签
{
myAgent.SetDestination(mHit.point);//mHit.point就是射线和Plane的相交点 实为碰撞点
}
}
}
}
}