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.rhkb.cn/news/127742.html

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

相关文章

TuGraph图学习技术详解

文章目录 TuGraph图学习目录图学习典型工作流程整体学习架构加速稀疏计算GPC编译加速 编译加速编译加速流水线GPCSPMM和SDDMM优化SPMM DSL代码生成SDMM DSL代码生成AutoTune-Cost Model 加速效果一键加速 TuGraph图学习实践目录TuGraph采样TuGraph采样算子全图训练采样算子介绍…

LeetCode //C - 114. Flatten Binary Tree to Linked List

114. Flatten Binary Tree to Linked List Given the root of a binary tree, flatten the tree into a “linked list”: The “linked list” should use the same TreeNode class where the right child pointer points to the next node in the list and the left child …

设计模式系列-外观模式

一、上篇回顾 上篇我们主要讲述了创建型模式中的最后一个模式-原型模式&#xff0c;我们主要讲述了原型模式的几类实现方案&#xff0c;和原型模式的应用的场景和特点&#xff0c;原型模式 适合在哪些场景下使用呢&#xff1f;我们先来回顾一下我们上篇讲述的3个常用的场景。 1…

C++项目实战——基于多设计模式下的同步异步日志系统-③-前置知识补充-设计模式

文章目录 专栏导读六大原则单例模式饿汉模式懒汉模式 工厂模式简单工厂模式工厂方法模式抽象工厂模式 建造者模式代理模式 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导师&#xff0c;阿…

【Vue CLI】

node.js安装 https://nodejs.org/download/release/v15.14.0/ 管理员运行cmd node -v 安装npm npm install -g cnpm --registryhttps://registry.npm.taobao.org 查看是否安装成功 npm -v 注册淘宝镜像加速器 npm config set registry https://registry.npm.taobao.org/ 查看…

无涯教程-JavaScript - COUPDAYSNC函数

描述 COUPDAYSNC函数返回从结算日期到下一个息票日期的天数。 语法 COUPDAYSNC (settlement, maturity, frequency, [basis])争论 Argument描述Required/OptionalSettlement 证券的结算日期。 证券结算日期是指在发行日期之后将证券交易给买方的日期。 RequiredMaturity 证…

【SpringMVC】注解、参数传递、返回值和页面跳转的关键步骤

目录 引言 一、常用注解 1.1.RequestMapping 1.2.RequestParam 1.3.RequestBody 1.4.RequestHeader 1.5.PathVariable 二、参数传递 2.1.基础类型String 2.2.复杂类型 2.3.RequestParam 2.4.PathVariable 2.5.RequestBody 2.6.RequestHeader 三、返回值 3.1.vo…

设置Linux CentOS7桥接模式连网

在虚拟机上安装centos7系统后&#xff0c;首要任务就是设置网络。 我们在文章《设置linux centos7连接网络》中讨论了如何设置NAT模式连网。本文讨论如何在设置好NAT模式后&#xff0c;调换为桥接模式。 仍采用图形化方式设置方法。 一、查看物理机网络 把虚拟机设置为桥接…

时序分解 | MATLAB实现基于EWT经验小波变换的信号分解分量可视化

时序分解 | MATLAB实现基于EWT经验小波变换的信号分解分量可视化 目录 时序分解 | MATLAB实现基于EWT经验小波变换的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 EWT经验小波变换 包含频谱相关系数 可直接运行 Matlab代码 1.可自由设置分量个数&…

windows安装向量数据库milvus

本文介绍windows下安装milvus的方法。 一.Docker安装 1.1docker下载 首先到Docker官网上下载docker:Docker中文网 官网 1.2.安装前前期准备 先使用管理员权限打开windows powershell 然后在powershell里面输入下面那命令&#xff0c;启用“适用于 Linux 的 Windows 子系统”…

调整Windows11桌面图标间隔

调整Windows11桌面图标间隔 WinR 快捷键如何使用 在Windows系统中&#xff0c;通过 WinR 的快捷键可以快速打开Windows系统的“运行”窗口&#xff0c;然后在这里输入相应的命令就可以快速执行指定的任务。 具体的操作方法是&#xff0c;同时按下键盘上的Windows键和R键即可。…

android 注解详解

1&#xff0c;注解的概念 注解现在广泛的应用于android的各个开源框架中&#xff0c;不理解注解&#xff0c;我们就无法更好的提升我们的架构能力。那么什么是注解呢&#xff1f;注解&#xff08;Annotation&#xff09;&#xff0c;是JDK5.0 引入的一种注释机制。 注解是元数…

Python基础语法:数据分析利器

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

华为OD机考算法题:食堂供餐

目录 题目部分 解析与思路 代码实现 题目部分 题目食堂供餐题目说明某公司员工食堂以盒饭方式供餐。为将员工取餐排队时间降低为0&#xff0c;食堂的供餐速度必须要足够快。现在需要根据以往员工取餐的统计信息&#xff0c;计算出一个刚好能达成排队时间为0的最低供餐速度。…

LORA项目源码解读

大模型fineturn技术中类似于核武器的LORA&#xff0c;简单而又高效。其理论基础为&#xff1a;在将通用大模型迁移到具体专业领域时&#xff0c;仅需要对其高维参数的低秩子空间进行更新。基于该朴素的逻辑&#xff0c;LORA降低大模型的fineturn门槛&#xff0c;模型训练时不需…

【力扣每日一题】2023.9.3 消灭怪物的最大数量

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目比较长&#xff0c;我概括一下就是有一群怪物&#xff0c;每只怪物离城市的距离都不一样&#xff0c;并且靠近的速度也不一样&#x…

工厂设计模式

github&#xff1a;GitHub - QiuliangLee/pattern: 设计模式 概念 根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式&#xff0c;根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。 简单工厂模式、工厂方法模式和抽象工厂模式有何区别&#xff1f; - 知…

SimVODIS++: Neural Semantic Visual Odometry in Dynamic Environments 论文阅读

论文信息 题目&#xff1a;SimVODIS: Neural Semantic Visual Odometry in Dynamic Environments 作者&#xff1a;Ue-Hwan Kim , Se-Ho Kim , and Jong-Hwan Kim , Fellow, IEEE 时间&#xff1a;2022 来源&#xff1a; IEEE ROBOTICS AND AUTOMATION LETTERS&#xff08;RAL…

shell知识点复习

1、shell能做什么&#xff08; Shell可以做任何事(一切取决于业务需求) &#xff09; 自动化批量系统初始化程序 自动化批量软件部署程序 应用管理程序 日志分析处理程序 自动化备份恢复程序 自动化管理程序 自动化信息采集及监控程序 配合Zabbix信息采集 自动化扩容 2、获取当…

【疑难杂症】解决 git 文件夹不显示绿色图标和红色图标的问题

目录 一、问题描述 二、问题解决前提 【2.1】首先保证电脑本机上有TortoiseGit这个软件 【2.2】TortoiseGit下载官网 【2.3】根据自己电脑位数进行下载&#xff0c;这里下载的是64位 【2.4】下载好之后&#xff0c;一路next进行安装&#xff0c;配置自己的邮箱和用户名 …