码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 详解Unity中的Nav Mesh新特性|导航寻路系统 (三)


    前言

    通过前面两篇的介绍与讲解我们已经对新版NavMesh有了一个基础的了解和使用,本篇我们继续讲解剩余的两个组件NavMeshModifier、NavMeshModifierVolume,这两个组件是主要是用于影响导航网格的生成的。所以内容不是很主要,但也非常重要。

    本系列提要

    Unity新版NavMesh专题博客共分成三篇来讲解: 【本篇为第三篇】

    • 第一篇(点击直达):新版NavMesh安装使用与概述
    • 第二篇(点击直达):详解NavMeshSurface、NavMeshLink组件的参数和应用
    • 第三篇(点击直达):详解NavMeshModifier、NavMeshModifierVolume组件的参数和应用

    目录

      • 前言
        • 本系列提要
      • 一、NavMeshModifier组件
        • 参数
        • 影响范围
        • 动态烘焙
          • 逻辑步骤:
      • 二、NavMeshModifierVolume组件
        • 参数
        • 影响范围
      • 三、总结和参考资料
        • 1.总结
        • 2.参考资料

    Unity版本[2019.4.10f1] 梦小天幼 & 禁止转载

    视频讲解:
    【详解Unity】导航系统(三) | Nav Mesh新特性 | NavMeshModifier & NavMeshModifierVolume


    一、NavMeshModifier组件

    该组件用于在运行时调整特定游戏对象在导航网格烘焙期间的行为方式
    注意,本组件的最大作用是运行时烘焙,同时这也是新版NavMesh最具亮点的功能之一,它弥补了旧版系统对于性能消耗的无力感。

    在这里插入图片描述

    参数

    参数作用
    Ignore From Build若勾选,则从构建过程中排除游戏对象及其所有子对象
    Override Area勾选则启用Area Type
    Area Type选择想要应用的新区域类型
    Affected Agents选择受此组件影响的Agent,默认影响全部

    影响范围

    按层次结构来影响游戏对象,也就是说该组件附加的对象以及其所有子对象都会被影响。

    如果子对象中也发现了该组件,则子对象的组件设置会覆盖更上方的组件,也会影响自身子对象。

    在这里插入图片描述

    动态烘焙

    当AI走到特定位置,触发逻辑,于是重新烘焙场景

    在这里插入图片描述

    在这里插入图片描述

    逻辑步骤:

    搭建好场景,分成两个部分,编辑器烘焙部分、运行时烘焙部分

    编辑器烘焙部分保证游戏一开始AI就能够寻路,运行时烘焙部分则为了节省性能,只能当AI需要进入某个房间时,这个房间的内容才会被显示,路径才会被烘焙

    其关键部分在于在进入场景前的位置放置一个触发器,一旦有AI触发,则显示场景,且重新烘焙场景

    主要代码

    // 关键部分就两句代码,当触发逻辑时,重新烘焙“所有”场景,同时删除旧的烘焙数据
    //using Unity.AI.Navigationo 命名空间是这个(o゚v゚)ノ
    
        public NavMeshSurface navOut;
        public NavMeshSurface navIn;
        private void Start()
        {
            navIn.BuildNavMesh();
            navOut.RemoveData();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    二、NavMeshModifierVolume组件

    该组件根据特定体积来影响NavMesh区域类型的网格生成

    在这里插入图片描述

    参数

    参数作用
    Size影响范围的尺寸
    Center影响范围的中心点
    Area Type选择想要应用的新区域类型
    Affected Agents选择受此组件影响的Agent,默认影响全部

    影响范围

    该组件的影响范围跟父级子级毫无关系,只影响体积范围内的物体
    在这里插入图片描述


    三、总结和参考资料

    1.总结

    这里有一张图片,是有关NavMesh系统的全局总结图,但懒得画,先占坑hh

    2.参考资料

    [1].Unity官方.NavMesh Modifier组件文档
    [2].Unity官方.NavMesh ModifierVolume组件文档

  • 相关阅读:
    【Linux】进程间通信 | 共享内存 | 信号量
    【Python小系统】四级考满分的学姐告诉你这样学英语逢考必过,赶紧康康叭~(捷径分享)
    SpringBoot 开启定时任务
    FPGA之旅设计99例之第六例-----动态数码管
    Springboot毕设项目办公物资管理系统6304w(java+VUE+Mybatis+Maven+Mysql)
    MySQL索引底层数据结构
    arm gcc 编译器在eclipse中修改堆栈大小
    CleanMyMac X2023标准版解锁完整版本Mac电脑清理专家
    你不知道的JavaScript---异步:现在与未来
    【git】一些容易混淆的操作
  • 原文地址:https://blog.csdn.net/weixin_43147385/article/details/127936712
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号