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:可以寻路的层。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/73364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解 JVM 之——字节码指令与执行引擎

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 类文件结构 Write Once&#xff0c;Run Anywhere 对于 C 语言从程序到运行需要经过编译的过程&#xff0c;只有经历了编译后&#xff0c;我们所编写的代码才能够翻译为机器可以直接运行的二进制代码&#x…

【web开发】4、JavaScript与jQuery

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、JavaScript与jQuery二、JavaScript常用的基本功能1.插入位置2.注释3.变量4.数组5.滚动字符 三、jQuery常用的基本功能1.引入jQuery2.寻找标签3.val、text、appe…

笔记 | 排序算法实现(Python)

排序算法 一、选择排序二、合并/归并排序三、快速排序四、计数排序 排序类型时间复杂度选择排序(Selection Sort) O ( n 2 ) O(n^{2} ) O(n2)合并/归并排序&#xff08;Merge Sort&#xff09; O ( n log ⁡ n ) O(n\log n ) O(nlogn)快速排序(Quick Sort)平均情况 O ( n log ⁡…

如何使用SQL系列 之 如何在SQL中使用CASE表达式

引言 编程语言通常以条件语句为特征&#xff0c;它们是执行特定操作直到满足特定条件的命令。一个常见的条件语句是if, then, else语句&#xff0c;它通常遵循以下逻辑: if conditiontruethen action Aelse action B这条语句的逻辑可以翻译成如下语言:“如果condition为真&am…

帧动画实现

背景&#xff1a; pag实现痛点 文档&#xff1a;libpag参考文档 1.打包依赖的类型缺失问题 2.pagview初始化文件过大,影响小程序打包 3.兼容性较差关键帧动画实现痛点: 当关键帧变化过多的时候&#xff0c;无法准确分辨出需要写出多少个关键帧&#xff0c;以及各个关键帧的具…

SpringBoot-配置优先级

配置 SpringBoot项目支持的三种格式的配置文件 application.properties&#xff1a;这是最常用的配置文件类型&#xff0c;使用键值对的形式来配置应用程序的属性。可以在该文件中配置应用程序的端口号、数据库连接信息、日志级别等。 application.yml&#xff1a;这是一种更…

微信小程序开发---小程序的页面配置

目录 一、小程序页面配置的作用 二、页面配置和全局配置的关系 三、页面配置中常用的配置项 一、小程序页面配置的作用 在每个小程序中&#xff0c;每个页面都有自己的.json配置文件&#xff0c;用来对当前页面的窗口外观&#xff0c;页面效果进行配置。 二、页面配置和全局…

视频监控/视频汇聚/安防视频监控平台EasyCVR如何将默认快照的raw格式改为jpg/base64格式?

视频监控/视频汇聚/安防视频监控平台EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频云存储EasyCVR平台能在复…

身份识别与鉴权技术调研方案

对称加密算法 对称加密方式又称为私钥加密方式&#xff0c;该方式的加密和解密过程使用同一个密钥&#xff0c;因此该密钥又称为共享密钥。如图2.2所示&#xff0c;在对称加密方式中&#xff0c;发送方使用对称加密算法和共享密钥处理原始数据&#xff0c;得到一个加密后的密文…

IDEA新建的Moudle失效显示为灰色

现象&#xff1a;IDEA新建的Moudle失效显示为灰色&#xff01;&#xff01;&#xff01; 解决方案&#xff1a; 1. 右键点击父模块&#xff0c;选择Open Moudle Settings&#xff1a; 2. 点击加号&#xff0c;选择Import Moudle - 导入模块&#xff1a; 3. 找到对应模块的po…

0016Java程序设计-springboot幼儿园管理系统

摘 要目 录系统设计开发环境 摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于幼儿园管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了幼儿园管理系统&a…

Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果

一、先来看下实现的效果 实现上面的效果需要解决俩个问题 当列表进行向下滑动到顶部的时候&#xff0c;继续滑动可以让弹窗向下收起来弹出上下拖动的时候&#xff0c;视图内容跟着上下移动、缩放大小 二、实现弹窗上下滑动的时候&#xff0c;动态改变内容区的位置和大小 通过…

HD系列边缘网关,助力工商业储能发展!

HD系列边缘网关具备低功耗、高性能、接口丰富等特点&#xff0c;可以实现如通信规约转换、远程调度、智能监测、通信管理等多种应用&#xff0c;适用于储能系统的能源管理系统。 1.1硬件接口 该产品板载瑞芯微 RK3568 处理器&#xff0c;可选配2G16G/432 等配置。机壳采用标准 …

sql:SQL优化知识点记录(十四)

&#xff08;1&#xff09;索引失效行锁变表锁 建立2个索引 索引是失效后&#xff0c;系统性能会变查&#xff0c;如果涉及到锁的话&#xff0c;行锁会变表锁 有一个问题&#xff0c;当session1用b字段做查询条件因为是varchar类型&#xff0c;需要加双引号&#xff0c;但是没…

chatGPT如何在Java中使用

ChatGPT是一个基于GPT模型的聊天机器人平台&#xff0c;它提供了API接口&#xff0c;可以通过HTTP请求与之交互。您可以使用Java编写程序&#xff0c;通过HTTP请求与ChatGPT进行交互&#xff0c;实现聊天机器人的功能。 具体步骤如下&#xff1a; 1、注册ChatGPT账号并创建应…

电脑入门:路由器访问控制列表基础知识

路由器访问控制列表基础知识   1、什么是访问控制列表?   访问控制列表在Cisco IOS软件中是一个可选机制,可以配置成过滤器来控制数据包,以决定该数据包是继续向前传递到它的目的地还是丢弃。   …

GO语言网络编程(并发编程)并发介绍,Goroutine

GO语言网络编程&#xff08;并发编程&#xff09;并发介绍&#xff0c;Goroutine 1、并发介绍 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更…

【思考】java中xml文件得到的sql查询字段是如何与对象类中的属性字段对应的?有顺序要求吗?

在Java中可以使用XML文件来配置数据库查询语句以及将查询结果映射到Java对象。通常&#xff0c;这样的任务可以使用框架如MyBatis或Hibernate来完成。以下是一个示例&#xff0c;演示如何使用MyBatis进行这样的操作。 首先&#xff0c;需要创建一个XML文件来配置SQL查询和结果…

sqlserver 各种集合、区间、 时间轴(持更)

1.所有有交集的区间 场景&#xff1a;在事件表里查找某年员工的岗位系数&#xff0c;并计算其加权平均数。case1&#xff1a;该员工是老员工&#xff0c;从2020年一直到2049年。case2&#xff1a;该员工是老员工&#xff0c;但是今年离职。case3&#xff1a;该员工是今年的新员…

8月AI实战:工业视觉缺陷检测

8月AI实战&#xff1a;工业视觉缺陷检测 –基于tflite的yolov8模型优化和推理 操作视频见B站连接&#xff1a;aidlux模型优化工业缺陷检测&#xff5e;&#xff5e;完美用我的华为手机实现缺陷检测的推理bilibiliaidlux模型优化工业缺陷检测&#xff5e;&#xff5e;完美用我…