unity学习50:NavMeshAgent 区域Areas和cost

server/2025/2/22 2:47:22/

目录

1 NavMeshAgent 区域和成本的问题

2 区域Areas

2.1 区域和颜色

2.2 区域和成本

2.3 区域成本的作用

2.4 地图测试准备

2.5 如何实现

unity%E7%9A%842022%E4%B9%8B%E5%89%8D%E7%9A%84%E8%80%81%E7%89%88%E6%9C%AC-toc" name="tableOfContents" style="margin-left:80px">2.5.1 unity的2022之前的老版本

unity%E7%9A%842022%E4%B9%8B%E5%90%8E%E7%9A%84%E6%96%B0%E7%89%88%E6%9C%AC-toc" name="tableOfContents" style="margin-left:80px">2.5.2 unity的2022之后的新版本

2.6 如果测试失败,是因为没有bake

2.7 测试前,必须先烘焙

3 区域遮罩:针对 NavMesh Agent

3.1 Ares Mask

3.2 实测OK


1 NavMeshAgent 区域和成本的问题

  • NavMeshAgent 除了代理相关
  • 还有一个Areas

2 区域Areas

2.1 区域和颜色

  • 之前,进行导航寻路的时候,地面上的颜色就是对应的这儿的颜色
  • 不同的区域设定为不同的颜色,可以在这查颜色对比

2.2 区域和成本

  • 每个区域可以设置为不同的成本
  • 系统默认的几个区域也设置了同的成本
  • 比如walk的 为1
  • jump的为2
  • 新建的可以自己修改

2.3 区域成本的作用

  • 智能寻路/导航时再计算起点,终点的智能寻路的时候,会考虑成本
  • 会选择最低成本的道路通过
  • 比如会尽量绕开河流,沼泽地等等

2.4 地图测试准备

  • 新建一个 Area类:river 
  • 修改其cost
  • 把地图上新建一个长方体代表河流,把这个区域选择为 river

2.5 如何实现

unity%E7%9A%842022%E4%B9%8B%E5%89%8D%E7%9A%84%E8%80%81%E7%89%88%E6%9C%AC" name="2.5.1%20unity%E7%9A%842022%E4%B9%8B%E5%89%8D%E7%9A%84%E8%80%81%E7%89%88%E6%9C%AC">2.5.1 unity的2022之前的老版本

unity%E7%9A%842022%E4%B9%8B%E5%90%8E%E7%9A%84%E6%96%B0%E7%89%88%E6%9C%AC" name="2.5.2%20unity%E7%9A%842022%E4%B9%8B%E5%90%8E%E7%9A%84%E6%96%B0%E7%89%88%E6%9C%AC">2.5.2 unity的2022之后的新版本

  • 需要在gameObject上新增1个 NavMeshModifier
  • 设置数学
  • affected agents: 选择是纯角色,还是全部
  • area type : 属于哪种区域

2.6 如果测试失败,是因为没有bake

  • 我设置为river 也不绕路
  • 我设置为 non walkable 居然也直接走
  • 感觉有啥问题:  不是即时生效的,必须先bake

2.7 测试前,必须先烘焙bake

  • 修改Area 属性,区域后
  • 必须去有 NavMeshSurface的 物体上,点击bake
  • 直到你修改的区域,出现粉红色的区域颜色,代表bake成功

3 区域遮罩:针对 NavMesh Agent

3.1 Ares Mask

  • 角色一定不走某个区域,但是怪物可以走
  • 针对Agent
  • 可以在Area Mask里勾选掉一些区域,这样角色就不走这个区域了
  • 有点像区域了设置了 not walkable的效果

3.2 实测OK


http://www.ppmy.cn/server/169727.html

相关文章

Redis- 对象专辑

Redis-常见数据类型和应用 前言什么是对象Redis ObjectString对象常用操作写操作读操作删除操作 底层实现源码解释embstr和raw 比较 什么是SDS 使用场景常规计数分布式锁 List对象元素限制常用操作创建更新删除 编码方式ZIPLISTLINKEDLISTQUICKLISTLISTPACK编码 压缩列表什么是…

python-leetcode-编辑距离

72. 编辑距离 - 力扣(LeetCode) class Solution:def minDistance(self, word1: str, word2: str) -> int:m, n len(word1), len(word2)dp [[0] * (n 1) for _ in range(m 1)]# 初始化for i in range(m 1):dp[i][0] i # 只能删除for j in range…

Linux系统中常见的词GNU是什么意思?

GNU 是 “GNU’s Not Unix” 的递归缩写,它是一个自由软件项目,旨在创建一个完全自由的操作系统。这个名字反映了GNU项目的核心理念:它试图创建一个类Unix的系统,但不是Unix本身。 GNU 项目由 理查德斯托曼(Richard S…

【数据挖掘】ARFF格式与数据收集

【数据挖掘】ARFF格式与数据收集 三级目录1. ARFF格式与数据收集2. 稀疏数据3. 属性类型4. 缺失值与不正确的值5. 了解数据6. 知识表达7. 聚类机器学习算法训练数据挖掘分析数据共享与交换 三级目录 1. ARFF格式与数据收集 ARFF(Attribute - Relation File Format…

用Chrome Recorder轻松完成自动化测试脚本录制

前言 入门自动化测试,录制回放通常是小白测试首先用到的功能。而录制回放工具也一直是各大Web自动化测试必然会着重提供的一块功能。 早期WinRunner、QTP这样的工具,自动化测试可以说是围绕录制回放开展的。近年像Selenium也提供有录制工具 Selenium IDE,Playwright也包含…

java常见面试场景题

1. 如何定位线上OOM 造成OOM的原因 如何快速定位OOM 2. 如何防止重复下单 方案一:前端提交订单按钮置灰 用户点击下单按钮后置灰,防止用户无意点击多次 方案二: 后端Redis setnx 用户token 商品URL KEY 用setnx 命令并设置过期时间3-5秒防止重复下单…

CSS定位全解析:position属性详解与应用场景

在网页布局中,CSS定位是实现元素精准控制的关键技术之一。通过position属性,我们可以将元素放置在页面的任何位置,并控制其相对于其他元素的行为。本文将深入解析position属性的各个取值及其应用场景,帮助你掌握CSS定位的精髓。 …

【Python 专题】数据结构 树

LeetCode 题目104. 二叉树的最大深度(gif 图解)方法一:后序遍历(DFS)方法二:层序遍历(BFS)872. 叶子相似的树(DFS 遍历)1448. 统计二叉树中好节点的数目(DFS 遍历)437. 路径总和 III(前缀和 + DFS 回溯)1372. 二叉树中的最长交错路径(DFS)236. 二叉树的最近公共…