Unity 导航网格使用教程

目录

Unity 导航网格使用教程

一、引言

二、准备工作

(一)创建场景元素

(二)设置静态导航

三、生成导航网格

(一)打开导航窗口

(二)设置代理参数

(三)烘焙导航网格

四、后续操作预告


一、引言

在 Unity 游戏开发中,导航组件是实现智能寻路的重要工具。它能帮助角色在场景中自动移动并绕过障碍,选择最优路径到达目标点。本教程将详细介绍导航网格的生成及相关设置,并附上部分可能用到的 Unity 代码示例。

二、准备工作

(一)创建场景元素

  1. 创建一个平面作为地面,适当调整其大小。
  2. 创建立方体作为障碍物,可根据需要调整其大小和位置。可以复制多个立方体来构建更复杂的障碍环境。
  3. 创建材质并赋予给地面和立方体,以便区分。例如给地面一个灰色材质,给立方体一个淡蓝色材质。

(二)设置静态导航

选中地面和立方体,在 Inspector 面板中找到对应的选项,将它们设置为静态导航。勾选相关选项后,可以看到导航静态已被勾选上。这一步是告诉导航系统利用这些物体的数据来计算网格。

三、生成导航网格

(一)打开导航窗口

点击窗口,选择 AI 导航中的导航选项,打开导航标签页。

(二)设置代理参数

  1. 代理半径:可以理解为代表角色的圆柱体的半径。例如默认是 0.5,通过这个参数来计算角色在场景中的可活动范围等。如果设置的半径小,在生成导航网格时边缘留出的空白距离就会小。
  2. 代理高度:目前默认是 2 米,比如遇到桥洞,如果桥洞高度低于 2 米则角色过不去,如果高于 2 米则可以通过。同时角色上台阶时,每一步台阶高度如果高于设置的步高参数(文档中未详细提及设置步高参数的地方,但推测有类似参数),则角色爬不上楼梯。

(三)烘焙导航网格

在导航标签页的烘焙一栏中,点击烘焙按钮。经过计算后,会生成蓝色的导航网格。网格内的区域表示角色可以行走,通过观察网格可以看到哪些区域是可通行的,哪些区域因为障碍物等原因不可通行。例如如果有横梁阻挡且横梁高度高于设置的角色高度,那么被横梁阻挡的区域在导航网格中就不会显示为可通行区域。

以下是一些可能用到的 Unity 代码示例(仅供参考,可能需要根据实际情况调整):

using UnityEngine.AI;

public class NavMeshExample : MonoBehaviour
{
    void Start()
    {
        // 获取导航网格组件
        NavMeshAgent navMeshAgent = GetComponent<NavMeshAgent>();

        // 设置代理半径等参数(假设可以动态设置)
        navMeshAgent.radius = 0.5f;
        navMeshAgent.height = 2.0f;
    }

    void Update()
    {
        // 这里可以添加角色移动等逻辑代码,例如当接收到目标点信息时移动
        if (hasTargetPoint)
        {
            navMeshAgent.SetDestination(targetPoint);
        }
    }
}

四、后续操作预告

本节课先了解了导航网格的生成及相关参数设置,下节课将介绍如何创建角色并真正利用导航网格进行移动。通过逐步学习和实践,就能熟练掌握 Unity 导航组件的使用,为游戏开发中的寻路功能实现打下坚实基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值