68.导航网格生成

68.导航寻路系统-导航网格生成


68.1 知识点

准备地形

  • 在进行导航寻路网格生成时
  • 第一步是需要有地形
  • 地形由美术同学制作模型

打开导航网格窗口

  • Window——>AI——>Navigation 打开Unity内置的导航网格生成窗口

导航网格窗口参数相关

Object 场景对象设置页签 设置参与寻路烘焙的对象

Sceme Filter:场景过滤器,配合Hierarchy窗口使用,筛选对象
All:显示场景上所有对象
MeshRenderers:显示挂载的网格渲染器的对象
Terrains:显示挂载了地形脚本的对象

  • 如果想对象进行地形数据生成,就把这个选项打开。打开对象上的这个开关其实是打开静态下的导航静态

  • 用于两个地形断开但是想跳过去的话,把这个选项打开。打开对象上的这个开关其实是打开静态下的网格连接静态

Bake 导航数据烘焙页签 设置寻路网格具体信息


  • 点击烘焙,场景中生成的蓝色部分就是可行走的区域。注意要设置成有对象是导航静态才能烘焙成功
Agent Radius 代理半径
  • 决定了烘焙边缘精确度
  • 控制平台可行走区域和边缘可行走区域
  • 可以理解为人物的半径
  • 半径越小,烘焙出来能走的地方就越多
Agent Height 代理高度
  • 决定了烘焙高度精确度
  • 控制拱桥是否可以穿越
  • 可以理解为人物高度
  • 高度越小,能穿过的拱桥就越多,烘焙出来能走的地方就越多
Max Slope 最大坡度
  • 斜坡度数
  • 决定了斜坡是否可以行走
  • 影响斜坡的烘焙
  • 假如场景里的斜坡大于最大坡道,就上不去了
Step Height 步高
  • 最小楼梯高度
  • 决定了台阶是否可以行走
  • 影响台阶的烘焙
  • 假如场景里的台阶的高度大于步高,就上不去了
  • 生成非网格连接
  • 两个分开的网格之间连接相关设置
  • 要在Object场景对象设置页签中打开Generate OffMeshLinks生成网格连接点开关 注意下面两个变量也要设置 不然可能会不生成
Drop Height 掉落高度
  • 可以从这个高度掉下来
Jump Distance 跳跃距离
  • 决定不同平面上的跳跃距离,连接
  • 小于这个距离内可以跳过
Advanced 高级
Manual Voxel Size 手动设置立体像素大小
  • Voxel Size 像素大小
    • 开启前者后可以在这里设置立体像素大小
    • 可以控制烘焙的准确度
    • 立体像素大小描述了生成的导航网格表示场景几何体的准确程度
  • 注意:
    • 立体像素大小减半会使内存使用量增加4倍,构建时间也增加4倍
    • 一般情况下不需要修改这个值
    • 除非想要极其准确的导航网格
Min Region Area 最小区域面积
  • 当面积小于此处值的导航网格区域会被移除
Height Mesh 高度网格构建开关
  • 主要用来解决楼梯烘焙为斜坡时
  • 希望在楼梯表面的位置准确的放置在楼梯平面上
  • 而不是斜坡上
  • 启用它会增加烘焙时间

Areas 导航地区页签 设置对象的寻路消耗 配合Object页签使用

  • Name 区域名字
  • Cost 成本 寻路消耗
  • 可以自己新加一个导航区域,去Object页签选择

  • 烘焙后可以看到对应区域生成了对应的颜色
  • 假如调高了寻路消耗成本,会影响寻路结果。比如游戏中不想要对象走水路,就把水的寻路消耗调的很高,那样就会绕着水路走。

Agents 代理页签 设置寻路代理信息


单独设置寻路对象


68.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson68_导航寻路系统_导航网格生成 : MonoBehaviour
{
    void Start()
    {
        #region 知识点一 准备地形
        //在进行导航寻路网格生成时
        //第一步是需要有地形
        //地形由美术同学制作模型
        #endregion

        #region 知识点二 打开导航网格窗口
        //Window——>AI——>Navigation 打开Unity内置的导航网格生成窗口
        #endregion

        #region 知识点三 导航网格窗口参数相关
        //1.Object页签——设置参与寻路烘焙的对象
        //2.Bake页签——导航数据烘焙页签,设置寻路网格具体信息
        //3.Areas页签——导航地区页签,设置对象的寻路消耗
        //4.Agents页签——代理页签,设置寻路代理信息
        #endregion
    }
}

68.3 练习题

自己拼凑一个场景并进行网格烘焙(也可以找美术资源来烘焙)



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏