NavMeshAgent需要给玩家添加这个组件。
windos>AI>NavMeshAgent打开网格
选中玩家以及可以行走的地方和障碍物
-烘焙网格蓝色是可以移动的地方。
using UnityEngine.AI; // 导入需要调用的AI库
public NavMeshAgent agent; // 无网络代理组件
void Start()
{
agent = gameObject.GetComponent<Nav Mesh Agent>();
// 获取无网格代理组件
}
void Update()
{
if (Input.GetMouseButtonDown(1)) // 如果点击鼠标右键。
{
RaycastHit hit; // 释放一个光线投射命中的射线
// 检查光线是否命中拥有网格系统的对象。
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit,Mathf.Infinity))
{
agent.SetDestination(hit.point); // 玩家移动到鼠标点击的位置。
// 旋转,让玩家在移动的时候可以快速调转方向。
Quaternion rotationToLookAt = Quaternion.LookRotation(hit.point - transform.position);
float rotationY = Mathf.SmoothDampAngle(transform.eulerAngles.y,
rotationToLookAt.eulerAngles.y,
ref rotateVelocity,
rotateSpeedMovement * (Time.deltaTime * 5));
transform.eulerAngles = new Vector3(0, rotationY, 0);
}
}
}