当前位置: 首页 > news >正文

【Unity navmeshaggent 组件】

【Unity navmeshaggent 组件】

组件概述:
NavMeshAgent是Unity AI系统中的一个组件,它允许游戏对象(通常是一个角色或AI)在导航网格(NavMesh)上自动寻路。

组件属性:

Radius:导航代理的半径,用于确定代理在导航网格上的移动范围。
Height:导航代理的高度,用于确定代理能够通过的空间高度。
Base Offset:导航代理的基础偏移量,可以调整代理的垂直位置。
Speed:代理在导航网格上移动时的最大速度。
Acceleration:代理从静止到最大速度的加速度。
Angular Speed:代理转弯时的最大角速度。
Stopping Distance:代理在接近目的地时开始减速的距离。
Auto Traverse OffMesh Link:是否自动使用OffMeshLink进行寻路。
Auto Repath:当路径不可用时,是否自动重新计算路径。
Obstacle Avoidance Type:代理躲避障碍物的类型,通常选择“High Quality”。
NavMesh Layer:代理可以导航的导航网格层。
脚本控制:
通过脚本,可以动态控制NavMeshAgent的行为。例如,设置目的地:

NavMeshAgent agent = GetComponent();
agent.destination = new Vector3(x, y, z); // x, y, z为目标点坐标
导航网格(NavMesh):
NavMesh是导航网格代理进行寻路的基础。开发者需要在场景中创建NavMesh,并确保所有可行走的区域都被包含在内。这通常通过使用NavMesh Surface组件来完成。

OffMeshLink:
OffMeshLink组件允许代理在没有导航网格的区域进行跳跃或特殊移动。它可以连接两个导航网格点,使代理能够从一个点直接移动到另一个点。

导航网格构建:
在Unity中,需要通过NavMesh Surface组件来构建导航网格。开发者可以指定哪些对象和层应该被包含在导航网格构建中,以及使用哪种几何体(渲染网格或物理碰撞器)来构建网格。

动态障碍物:
NavMeshAgent能够动态避开其他代理和障碍物。如果场景中有动态变化,比如移动的平台或障碍物,NavMeshAgent可以实时重新计算路径。

性能考虑:
NavMeshAgent的性能取决于场景的大小和复杂度,以及导航网格的质量和密度。开发者需要根据项目需求进行适当的优化。

使用场景:
NavMeshAgent广泛应用于角色控制、AI路径规划、自动驾驶车辆等场景,是实现复杂寻路逻辑的基础工具。

在这里插入图片描述

相关文章:

  • Linux Vim最全面的教程
  • web学习笔记(七十五)
  • 蓝牙模块的使用01,OOOLMF蓝牙模块HC05调试使用01AT设置从机,手机用软件对接
  • 《Unity3D高级编程之进阶主程》第一章 C#要点技术(六) 搜索算法
  • 基于SpringBoot的篮球竞赛预约平台
  • 概率论与数理统计_上_科学出版社
  • HarmonyOS ArkUi Tabs+TabContent+List实现tab吸顶功能
  • 【Git-驯化】一文学会git配置用户信息,git config用法细节
  • Selenium:原理与使用指南
  • 麒麟V10安装MinIO
  • CICD流水线-父子项目打包发布至私仓库
  • 【数据分享】国家级旅游休闲街区数据(Excel/Shp格式/免费获取)
  • 大模型思维链(Chain-of-Thought)技术原理
  • 网络爬虫(一)深度优先爬虫与广度优先爬虫
  • 查看视频时间基 time_base
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Babel配置的不完全指南
  • CSS实用技巧干货
  • HTML-表单
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • java小心机(3)| 浅析finalize()
  • Linux CTF 逆向入门
  • Otto开发初探——微服务依赖管理新利器
  • Service Worker
  • Spark学习笔记之相关记录
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • WePY 在小程序性能调优上做出的探究
  • 简单基于spring的redis配置(单机和集群模式)
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端知识点整理(待续)
  • 如何设计一个比特币钱包服务
  • 提醒我喝水chrome插件开发指南
  • 我是如何设计 Upload 上传组件的
  • 学习笔记:对象,原型和继承(1)
  • 原生 js 实现移动端 Touch 滑动反弹
  • gunicorn工作原理
  • Spring第一个helloWorld
  • 国内开源镜像站点
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #window11设置系统变量#
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (BFS)hdoj2377-Bus Pass
  • (C++)八皇后问题
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (八)c52学习之旅-中断实验
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (算法设计与分析)第一章算法概述-习题
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略