Unity之3D物理导航系统
一 介绍
Unity自带寻路(导航)系统是unity官方自带的一种寻路系统。我们可以通过它来制作简单的寻路,比如可以制作点击某个位置,让角色自动的绕开障碍走到目标点的效果,比如可以制作敌人AI,让它可以通过NavMesh绕开障碍追击我方单位。甚至可以在NavMesh中设置传送门,跳跃的起点落点,让这些效果也参与寻路的计算,成功计算出导航的捷径
二 创建3D项目
2.1 新建核心3D模板
2.2 新建Plane当作地面
2.3 新建立方体当角色
2.4 开启物理导航组件,窗口->包管理器->unity注册表
2.5 给角色添加网格导航,Nav Mesh Agent选项
2.6 把地面组件勾选静态
2.7 找到导航系统,烘培地面Window-->AI-->Navigation
2.8 编写脚本,新建C#脚本文件
2.9 拖动挂载到角色上面,双击打开VS编辑
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;public class NewBehaviourScript : MonoBehaviour
{private NavMeshAgent agent;void Start(){agent = GetComponent<NavMeshAgent>();}RaycastHit hit;//碰撞体// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out hit)){agent.SetDestination(hit.point);}}}
}
2.10 保存,返回Unity运行,这个时候就能点击鼠标,物体自动移动到鼠标位置
三 导航系统参数介绍
3.1 Unity 3D 导航系统由 1个Navigation总控制面板 和 3个组件 组成,该系统是由 A*算法 延伸扩展实现的,由4部分组成,分别是 Agents,Areas,Bake,Object
3.2 常用的导航组件是自动寻路组件,障碍物组件,跳跃组件,如下图
3.3 Agents面板,导航参数设置
- Name:设置烘焙 Agents 的名字。
- Radius:烘焙的半径,也就是对象烘焙的半径。这个值影响对象能通过的路径的大小,值越小,能行走的路径越大,边缘区域越小。
- Height:具有代表性的对象的高度,可以通过的最低的空间高度。值越小,能通过的最小高度越小。
- Step Height:梯子的高度。需要根据模型阶梯的高度设置。
Max Slope:烘焙的最大角度,即坡度。
3.4 Areas面板,层设置,该面板可以设置在自动寻路时,对象可以通过那些层。 这里输入的名称会在 Object 面板的 Navigation Area 下显示
3.5 Bake面板(烘焙导航网格
- Agent Radius:具有代表性的对象的半径,半径越小生成的网格面积越大。
- Agent Height:具有代表性的对象的高度。
- Max Slope:斜坡的坡度。
- Step Height:台阶的高度。
- Drop Height:允许最大的下落距离。
- Jump Distance:允许最大的跳跃距离。
- Min Region Area:网格面积小于该值则不生成导航网格。
- Height Mesh:勾选后会保存高度信息,同时会消耗一些性能和存储空间。
3.6 Object面板,对象
在该面板中可以选择,设置要参与导航网格烘焙的对象,可以设置对象是可以被自动寻路的,如路面。也可以设置对象是不可以被自动寻路的(即不可行走),如湖面
- Generate OffMeshLinks:设置地面可跳跃。
- Navigation Area:设置对象以特定的路线寻路。
四 各导航组件属性介绍
4.1 Nav Mesh Agent,自动寻路组件
- Agent Type:寻路类型,可以在 Navigation 总控制面板中设置类型。
- Base Offset:偏移值。值越大越容易寻路,但是目标会偏移得越远。
- Speed:对象自动寻路的速度。
- Angular Speed:对象自动寻路的转弯速度。
- Acceleration:加速度。
- Stopping Distance:对象停下的距离。如果值设置为0,则在距离目标点为0处停下
- Auto Braking:是否自动停下。
- Radius:对象躲避障碍物的半径。大于这个半径无法躲避障碍物。
- Height:对象躲避障碍物的等级。等级越高,躲避障碍物越准确。
- Priority:优先级。值越大,障碍物躲避越优先。
- Auto Traverse Off Mesh Link:自动跳跃链接。
- Auto Repath:自动复制路径。
- Area Mask:能通过的Mask层,可以配合 Navigation 组件中的 Areas 使用。
4.2 Nav Mesh Obstacle,障碍物组件
- Shape:障碍物的形状。
- Center:障碍物的中心点坐标。
- Size:障碍物的大小。
- Carve:障碍物的网格。
4.3 Off Mesh Link,跳跃组件
- Start:跳跃的开始点。
- End:跳跃的结束点。
- Cost Override:是否计算路径开销,即是否将寻路计入寻路距离。
- Bi Directional:开始点和结束点是否可以互跳。
- Activated:是否激活。
- Auto Update Position:自动更新位置坐标。
- Navigation Area:可以寻路的层。
相关文章:

Unity之3D物理导航系统
一 介绍 Unity自带寻路(导航)系统是unity官方自带的一种寻路系统。我们可以通过它来制作简单的寻路,比如可以制作点击某个位置,让角色自动的绕开障碍走到目标点的效果,比如可以制作敌人AI,让它可以通过NavMesh绕开障碍追击我方单…...
9.4黄金行情是否反转?今日多空如何布局?
近期有哪些消息面影响黄金走势?今日黄金多空该如何研判? 黄金消息面解析:周一(9月4日)亚市盘中,现货黄金震荡走高,延续上周涨势,一度刷新日内高点至1946.16美元/盎司。周三,ISM将发布服务业P…...

Win10下使用vim9
作为一个经常与文字打交道的Writer,你在学会Vim的基本操作之后,就一定会爱上Vim的。 以下是Windows10_64位(专业版)环境中安装、使用Vim9的全过程,分享一下: 一、下载、安装Vim9 去Vim官网去下载最新的Vi…...

Flink+Flink CDC版本升级的依赖问题总结
之前使用Flink1.13Flink CDC2.0同步MySQL数据,想测试一下最新的几个版本。但是各种依赖冲突的报错,经过一段时间的调试,终于解决,现在总结一下。 1、flink1.15前后jar包名称不一样 flink-streaming-java、flink-clients、flink-…...

Matlab论文插图绘制模板第112期—带阴影标记的图
之前的文章中,分享了Matlab带线标记的图: 进一步,本期分享的是带阴影标记的图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号…...

专业运动耳机哪个牌子好、专业运动耳机推荐
在进行运动时,倾听音乐实际上是一种放松大脑、放松身体的小技巧。毕竟运动是一个耗费体力最多的活动,整个过程也往往令人感到乏味。如果有音乐作伴,你的运动就会变得更加轻松愉快。那么,哪种耳机适合运动呢?我正好对此…...

【SQL应知应会】索引 • Oracle版:B-树索引;位图索引;函数索引;单列与复合索引;分区索引
欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文免费学习,自发文起3天后,会收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 索引 • MySQL版 前言一、Oracle索引1.索引概述及分类…...

用ChatGPT做一个Chrome扩展 | 京东云技术团队
用ChatGPT做了个Chrome Extension 最近科技圈儿最火的话题莫过于ChatGPT了。 最近又发布了GPT-4,发布会上的Demo着实吸睛。 笔记本上手画个网页原型,直接生成网页。网友直呼:前端失业了! 但我觉着啊,真就外行看热闹…...

动态库的制作与使用及 动态库加载失败解决
加载动态库时有时会出现error while loading shared libraries:libcalc.so:可以通过lld命令查看动态库的依赖关系,发现libcalc.so时not found 原因 查找的优先级是DT_RPATH->LD_LIBRARY_PATH->/etc/ld.so.cache->/lib/,/usr/lib 找不到一个优…...

404 not found nginx(dist打包后,刷新和跳转都是404 not found nginx的问题) 解决方案(打包发布在服务器)
当我们执行了yarn run build之后,生成dist文件 我们将代码放入nginx-1.24.0下面的html中 然后我们就配置conf文件下的nginx.conf 配置方面不介绍了,主要问题是因为没有加这句话 问题分析 index index.htm index.html; index 就是根目录,也就…...

《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》全文翻译
《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 论文信息摘要1. 介绍2. 思维链提示3. 算术推理3.1 实验设置3.2 结果3.3 消融研究3.4 思想链的稳健性 4. 常识推理5. 符号…...

MySQL——笔试测试题
解析: 要查询各科目的最大分数,可以使用如下的SQL语句: SELECT coursename, MAX(score) FROM t_stuscore GROUP BY coursename; 这条SQL语句使用了MAX()聚合函数来获取每个科目的最大分数,并使用GROUP BY子句按照科目进行分组…...

WangEditor在Vue前端的应用
1、在Vue项目中安装WangEditor 对于Vue2: npm install wangeditor/editor-for-vue --save 或者 yarn add wangeditor/editor-for-vue 对于Vue3: npm install wangeditor/editor-for-vuenext --save 或者 yarn add wangeditor/editor-for-vuenext 2、将Wa…...
初学python的感受
目录 初学感受学习计划学习目标 初学感受 刚学python的我惊讶的发现编程语言之间竟有如此多的相似之处,因此在学python的时候相对于学C语言时要轻松的多,虽然二者也有一些不同之处,但是我想只要对二者稍微区分的话应该不会搞混的,并且在学习的过程中也可以借鉴学C语言的方法去…...
SpringSecurity中注解讲解
文章目录 1 EnableGlobalMethodSecurity1.1 PreAuthorize1.1.1 开启注解1.1.2 使用注解原生方法1.1.3 使用注解自定义方法 1.2 PostAuthorize1.3 Secured 2 其他注解2.1 PostFilter2.2 PreFilter 3 权限表达式 1 EnableGlobalMethodSecurity EnableGlobalMethodSecurity 是 Sp…...

朔雪流量复制器的前端
朔雪流量复制器的前端 1. 功能需求简介 本流量复制器使用端口映射模式实现流量复制,可以实现一对一,一对多,和多对一的流量复制模式。 映射网口的多少取决于设备的硬件,最多可以支持36端口。 使用模式包括** 1)从1…...
Anaconda下 Prophet的安装,pystan和fbprophet的版本问题
一、安装pystan conda install pystan2.19.1.1 二、安装fbprophet conda install fbprophet0.7.1 -c conda-forge Prophet有prophet和fbprophet两个包可以安装,我这里用的是fbprophet 三 import fbprophet 后会提示: ERROR:fbprophet:Importing p…...
IntelliJ IDEA 简介
IntelliJ IDEA 简介 IntelliJ IDEA(简称 IDEA)是一款由 JetBrains 公司开发的强大且广受欢迎的集成开发环境(IDE),主要用于Java开发,但也支持其他编程语言和技术栈的开发。作为一款功能丰富、高效的IDE&am…...

20230904 QT客户端服务器搭建聊天室
Ser cpp#include "app.h" #include "ui_app.h"APP::APP(QWidget *parent):QWidget(parent),ui(new Ui::APP) {ui->setupUi(this);this->resize(550,400);ui->Line->setAlignment(Qt::AlignCenter);//标签文本对齐方式 居中ui->Line->se…...
吴恩达gradio课程:基于开源LLM(large language model)的聊天应用chatbot
文章目录 内容简介构建应用程序使用gradio在线体验接下来结合llm模型使用gradio构建一个完整的应用程序内容简介 Falcon 40B是当前最好的开源语言模型之一。使用text-generation库调用Falcon 40B的问答API接口。首先仅仅在代码中与模型聊天,后续通过Gradio构建聊天界面。Gradio…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...