Unity的Navigation导航系统简单实例

本文详细介绍了如何在Unity中使用导航网格系统创建路径寻找。首先,需在Scene中搭建特定场景,并设置CubetargetCube为Navigation Static。接着,通过Navigation面板进行烘焙,最后为Player对象添加脚本实现自动寻路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Scene中搭建如图所示的场景

在这里插入图片描述

然后选中Cube target Cube(1)在Inspector面板的static下拉框中选中Navigation Static 最后点击window菜单中的Navigation选项 弹出Navigation面板 点击bake进行烘焙

在这里插入图片描述

最后给player对象添加脚本 运行即可看到效果
    // Use this for initialization
    public GameObject go;
	void Start () {
        GetComponent<NavMeshAgent>().destination = go.transform.position;
	}
	
### 启用Navigation Static设置 在Unity中,为了使对象能够参与到导航网格(NavMesh)的构建过程中,必须将其标记为`Navigation Static`。这一步骤对于创建有效的导航环境至关重要[^1]。 具体操作如下: - 找到希望参与NavMesh构建的游戏对象。 - 在Inspector面板中找到该对象的相关属性列表。 - 滚动到底部,可以看到一个名为“**Static**”的部分。 - 勾选此部分中的“**Navigation Static**”选项框。这一动作告知Unity引擎,在生成或更新NavMesh时考虑这个物体的存在及其形状影响[^3]。 完成上述配置之后,还需要确保项目已经包含了必要的NavMesh组件支持文件。如果尚未安装,则可以从Unity Store下载或是通过访问[Unity Technologies GitHub](https://github.com/Unity-Technologies/NavMeshComponents)单独获取并导入至工程内。 最后,记得重新烘焙整个场景的NavMesh以应用更改。可以通过Window菜单下的AI -> Navigation打开导航窗口,并点击Bake按钮执行烘焙过程。 ```csharp // 此处展示的是如何利用C#脚本来响应玩家输入并指挥角色沿指定路径移动的例子, // 虽然这不是直接关于启用Navigation Static的内容,但它展示了NavMeshAgent的实际应用场景。 using UnityEngine; using UnityEngine.AI; public class MoveToClick : MonoBehaviour { private NavMeshAgent agent; void Start() { agent = GetComponent<NavMeshAgent>(); } void Update() { if (Input.GetMouseButtonDown(1)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; bool rec = Physics.Raycast(ray, out hitInfo, 100); if (rec && agent != null) { agent.SetDestination(hitInfo.point); Debug.Log(agent.remainingDistance); } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值