场景中有 Capsule,Cube,Plan

给Plane添加组件NavMesh Surface
给Capsule添加组件NavMesh Agent
给Cube添加组件NavMesh Obstacle
在Plane的Inspctor中点击Bake
添加脚本
using UnityEngine;
using UnityEngine.Events;
public class Manager : MonoBehaviour
{
//inspctor中出现OnClickEnv事件,该事件是基于Vector3的
public EventVecter3 OnClickEnv;
RaycastHit hit;
// Update is called once per frame
void Update()
{
Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit);
if (Input.GetMouseButtonDown(0))
{
//触发在inspctor绑定的内容
OnClickEnv.Invoke(hit.point);
}
}
}
[System.Serializable]
public class EventVecter3 : UnityEvent<Vector3> { }
在unity中添加一个empyt object,添加脚本后,在Inspctor中绑定事件

完成后Capsule可自动寻路了

本文详细介绍如何在Unity中使用Capsule、Cube和Plane搭建基本的寻路系统。通过给Plane添加NavMeshSurface组件,Capsule添加NavMeshAgent组件,Cube添加NavMeshObstacle组件,实现自动寻路功能。此外,还介绍了如何通过脚本监听鼠标点击事件,并获取点击位置,以实现动态寻路目标设定。

被折叠的 条评论
为什么被折叠?



