Unity-八(导航和寻路)

[U3D] 2D斜45°地图构建记录 关于实现一个简单的2D斜45°地图的构建记录。 数据类: SoMap.cs 用于存储构建出来的地图. using UnityEngine; public class SoMap : ScriptableObject { public int mapID; public... 阅读详情

导航网格

首先在Unity中创建一个简单的场景。
在这里插入图片描述
将小球添加Nav Mesh Agent组件,在Windows中找到AI添加Navigation(导航) ,会出现Navigation。
在这里插入图片描述

选中所有的静态物体,勾选Navigation Static 在Bake界面中点击Bake按钮。Scene视图下会出现导航网格。

Navigation介绍

Object

属性功能
Scene Filter场景滤镜
All设置所有的对象
Mesh Renderer除相机和光照外,设置所有的对象
Terriain只设置地形
Navigation Static勾选后表示该对象参与导航网格的烘焙
Generate OffMeshLinks勾选后可在导航网格中跳跃(Jump)和下落(Drop)
Navigation Area导航区域

Bake

属性功能
Agent Radius设置具有导航网格代理的物体半径,半径越小,生成的网格面积越大
Agent Height设置具有导航网格代理的物体的高度
Max Slope设置最大允许到达斜坡的坡度
Step Height设置允许到达台阶的高度
Drop Height设置允许最大的下落距离
Jump Distance设置允许最大的跳跃距离
Manual Voxel Size设置是否手动调整烘焙尺寸
Voxel Size设置烘焙的单元尺寸,控制烘焙的精度
Min Region Area设置最小区域
Height Mesh设置当地形有落差时是否生成精确而不是近似的烘焙效果

Agent

属性功能
Name具有导航网格代理的物体的名字
Ridus物体的半径
Height物体的高度

代码控制物体小球运动

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public  class ray : MonoBehaviour
{
   NavMeshAgent agent;
    public Transform red;
    private void Start()
    {
        agent = GetComponent<NavMeshAgent>();
    }
    public void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//从相机发射一条射线到点击处
            if (Physics.Raycast(ray, out hit, Mathf.Infinity))
            {
            //如果点击场景中一点则小球通过计算从最近的距离移动到这一点
              agent.SetDestination(hit.point);
              red.position = hit.point;//点击处出现红色小球标注便于观察
            }
        }
    }
}

NavMeshAgent组件

1.Steering[操作]

Speed[速度]:导航的移动速度;
Angular Speed[转弯速度]:模型是Z轴朝向目标点;如果不是,则转向;
Acceleration[加速度]:保持默认即可;
Stopping Distance[停止距离]:距离目的地多远的时候停止;
AutoBraking[自动停止]:保持默认勾选状态即可。

2.Obstacle Avoidance

Radius[半径]:控制代理器这个“圆柱体”的半径,也就是大小; Height[高度]:控制代理器这个“圆柱体”的高度;
Qualty[质量]:避障质量。如果您拥有大量代理,则可以通过降低避障质量来节省CPU时间。
priority[优先级]:执行避免时,此代理将忽略优先级较低的代理。该值在0-99范围内,其中较低的数字表示较高的优先级。

3.Path Finding

Auto Traverse OffMesh Link 设置为 true 可自动遍历网格外链接 (Off-Mesh Link)。如果要使用动画或某种特定方式遍历网格外链接,则应关闭此功能。
Auto Repath启用此属性后,代理将在到达部分路径末尾时尝试再次寻路。当没有到达目标的路径时,将生成一条部分路径通向与目标最近的可达位置。 Area
Mask Area Mask描述了代理在寻路时将考虑的区域类型。在准备网格进行导航网格烘焙时,可设置每个网格区域类型。例如,可将楼梯标记为特殊区域类型,并禁止某些角色类型使用楼梯。

使用Unity导航系统的Areas实现不同物体以分路的方式自动寻找相同的目的地(Unity导航系统的应用) 实现绿色、红色、蓝色小球分别走绿色道路、红色道路、蓝色道路到达End 阅读详情

相关推荐

【Unity】Unity寻路系统讲解及Navigation实际应用

如果一个简单游戏只有一个代理在场景中移动,可一次性找出走廊的所有拐角,并推动角色沿着连接拐角的线段移动。描述路径的多边形的线性列表是用于转向的灵活数据结构,并可在代理的位置移动时进行局部调整。由于算法是局部的,因此它只考虑即将发生的碰撞,并且不能绕过陷阱或处理障碍物挡路的情况。这些情况需要知道动作的位置。由于每一帧中的代理移动距离非常小,我们可以使用多边形的连接来修复走廊,以防我们需要稍微绕道而行。单元格寻路就是把地图分隔为多个格子,形成一个矩阵,每个格子标注是否可移动,角色在可移动的格子内寻路。

一个普普通通的游戏开发者 9154

2022-07-15 Unity核心10——导航寻路系统

​Unity中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往。​在游戏中常常会有这样的一个功能,场景中有一道门,如果这道门没有被破坏是不能自动导航到门后场景的,只有当这道门被破坏了,才可以通过此处前往下一场景。导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据。如果关闭,则只能Start到End。...

zheliku的博客 5397

Unity寻路导航NavMesh

寻路导航NavMesh Unity中对于寻路算法进行了封装,支持提交将地图进行导航烘焙,降低了实时计算的消耗 菜单Window–>Navigation,打开导航面板 操作 选择不移动的游戏对象,勾选Navigation Static 如果是不连接的游戏对象,勾选 Generate OffMeshLinks 如果需要设置区域,可以在属性 Navigation Area下选择,使用方式与层一样 点击Areas标签,可以添加区域,内置创建了三个区域,表示可以行走、不可以行走、可跳跃 选择

CODING... 1600

【Unity自动寻路】使用Navigation系统实现物体自动寻路绕开障碍物-AI导航

知识点流程图。

leoysq的博客 1万+

Unity零基础到入门 ☀️| 万字教程 对 Unity 中的 Navigation导航系统基础 全面解析+实战演练【收藏不迷路】

导航系统。导航系统,顾名思义,就是游戏中的一个寻路功能。本文对Unity中的导航Navigation 系统做了一个详细的说明,包括案例和效果展示!请品尝!

努力前行,总会成为自己心中的那道光 8万+

【Unity中的A星寻路】Navigation导航寻路系统四大页签详解

在Unity中,导航寻路系统是一个用于实现游戏角色移动和寻找路径的工具**。它可以帮助角色在游戏世界中自动寻找最佳路径,避免障碍物,并根据给定的目标位置进行移动。这个系统使用的是A*算法,它通过评估每个可能的路径来找到最佳路径。 导航寻路系统还提供了一些高级功能,如动态障碍物处理和多层导航网格,使角色能够更加灵活地移动和避让障碍物。

秩沅 2776

Unity核心10——导航寻路系统

Unity 中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往​中的导航寻路系统的本质,就是在 A 星寻路算法的基础上进行了拓展和优化导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据导航网格寻路组件(NavMesh Agent)——寻路组件就是帮助我们根据地形数据计算路径让角色动起来的关键。

weixin_53163894的博客 5908

Unity3D开发的斜45度射击游戏 源代码

Unity3D开发的斜45度射击游戏 源代码

详解Unity中的Nav Mesh|导航寻路系统 (一)

在类RTS、RPG游戏中,都会提供自动寻路功能,当玩家下达指令后,NPC就会自动计算到达目标的路径,实现这种功能的方式有很多种,其中Unity本身也自带了一种导航寻路系统,该系统会将游戏场景中复杂的对象烘焙为网格信息,通过网格来计算NPC抵达目标的最短路径,该系统还支持动态寻路。接下来就详细讲讲NavMesh系统。.........

梦小天幼的博客 1万+

正负数据如何归一化_生信干货 | LC-MS代谢组学QI软件下机数据代谢物筛选和归一化如何做?...

上海·2019第一届多层组学前言技术发展华东区客户研讨会倒计时1天LC-MS非靶向代谢组学数据下机啦~~拿到一堆数据怎么办?不会高端代码,也不会自己写脚本,我怎么处理数据?​本期小编带来了LC-MS非靶向代谢组学下机数据处理实用干货,包括:下机定性结果表格的解析、代谢物筛选如何做?以及定量数据如何做归一化?实用干货,赶紧来抢~~话不多说,赶紧来学习吧~~非靶向LC-MS代谢组学的分析流程LC-MS...

weixin_36441329的博客 2983

MIT Bevfusion环境安装 Docker方式,nuscenes数据处理

Bevfusion环境安装,数据生成报错解决module 'numpy' has no attribute 'long';most likely due to a circular import。bevfusion docker环境

Jack_Man_N的博客 1143

unity学习47:寻路和导航,unity2022后版本如何使用 Navmesh 和 bake

选择要烘焙的gameObject 右上角 静态static,然后 Navigation static然后,在windows下打开AI,打开Navigation , 里面有 Navigation agent 和 bake按钮同样1个gameObjectmesh render 决定的外观看起来什么样,比如外观的形状collider决定的碰撞时,此物体的样子,比如也也时胶囊angent的形状 决定navigation 寻路导航的这个物体的样子,比如圆柱形。

奔跑的犀牛先生 4965

mtk-drm commit送显流程(二):内核态atomic_commit实现解析

本文深入解析了mtk-drm框架中atomic_commit机制的内核态实现流程,详细介绍了从用户态触发到硬件提交的完整调用链,包括状态检查、硬件提交等关键阶段。特别分析了MTK平台在动态刷新率、内存带宽优化等方面的特有实现策略,为开发者提供了调试技巧和常见问题解决方案。

weixin_30839881的博客 1305

Unity-导航寻路系统

Unity导航寻路系统基于A星算法优化,通过导航网格(NavMesh)实现角色自动寻路避障。系统包含四个核心组件:导航网格生成地形数据、NavMeshAgent计算移动路径、OffMeshLink处理平面间跳跃、NavMeshObstacle处理动态障碍物。开发者需先烘焙场景地形数据,再配置代理参数如移动速度、避障优先级等。代码层面可通过SetDestination()设置目标点,利用射线检测实现点击移动。动态障碍物组件可控制门的开关等交互元素,OffMeshLink可自定义连接路径。该系统为游戏角色智能移

qq_52796826的博客 1048

STM32 RT-Thread 系统分析(1)- 启动文件

RT-Thread STM32 系统分析(1)- 启动文件前言基本信息前言说明三级目录 前言 基本信息 名称 描述说明 RT-Thread Studio 软件版本 版本: 1.1.3 RT-Thread 系统版本 4.0.2 STM32CubeIDE 软件版本 1.4.0 STM32芯片型号 STM32F013VG 前言说明 使用了STM32CubeIDE 和 RT-Thread Studio 建立了相同型号芯片的工程,对比其中启动文件内容差异如下: 左侧是RT-Threa

鸳鸯冰笔的博客 4096

IC版图设计之OASIS文件格式详解

OASIS(Open Artwork System Interchange Standard)是继GDSII之后新一代的集成电路版图数据交换标准,由SEMI在2004年正式发布(SEMI标准号:SEMI P39)。高压缩率:相比GDSII可减少3-10倍文件体积扩展性强:支持纳米级工艺的复杂图形描述跨平台兼容:独立于EDA工具和操作系统安全增强:内置校验和与加密支持。

ZZcppc的博客 2440

unity 游戏中的寻路与导航系统(5种寻路算法详解)

1.了解游戏中常见的驯鹿方式 2.寻路方案选择 3.NavMesh 寻路 4.任务目标追踪 5.常见的寻路方式-建模方式 寻路建模 Grid WayPoint NavMesh

lfanyize的博客 2万+

embedding计算过程

文章目录embedding计算过程(错了跟我讲,我会改)参考示例个人理解过程图示总结(基于pytorch) embedding计算过程(错了跟我讲,我会改) 参考示例 https://www.jianshu.com/p/63e7acc5e890 个人理解过程图示 总结(基于pytorch) 总的来说,就是将独热向量的长度(对应嵌入层的num_embeddings)转变为嵌入层的emdedding_size(而独热向量的维数就是你的数据中一共产生了多少个不一样的词,至少是这么多)。 数据的变化,将二维

纸上得来终觉浅,绝知此事要躬行! 1631

Unity 实现A* 寻路算法

A* 寻路算法在Unity中的示例

YF云飞的博客 1万+

鱼眼相机去畸变(图像拉直/展开/矫正)算法及实战总结

1、算法说明经纬度矫正法, 可以把鱼眼图想象成半个地球, 然后将地球展开成地图,经纬度矫正法主要是利用几何原理, 对图像进行展开矫正。经过P点的入射光线没有透镜的话,本应交于相机成像平面的e点。然而,经过鱼眼相机的折射,光线会交于相机成像平面的d点,就产生了畸变,因此畸变图像整体上呈现出像素朝图像中心点聚集的态势。而去畸变,就是将折射到d点的点,重新映射回到e点,因此去畸变之后的图像与原始的鱼眼图像相比,仿佛是把向心聚集的像素又重新向四周铺展开来。AVM环视系统——鱼眼相机去畸变算法 - 知乎。

大胡子大叔的专栏 2万+

美特CRM mcc_login.jsp存在SQL注入漏洞

MetaCRM 是一种现代化的客户关系管理(CRM)平台,旨在通过集成和自动化的方式帮助企业管理与客户的关系,提高销售和服务效率。MetaCRM 的功能和特性通常涵盖了多个领域,包括销售、营销、客户服务、数据分析和自动化工具。

缘梦未来的博客 808

Unity学习--导航寻路功能-- 寻路网格生成与脚本使用(旧版)

本文总结了Unity导航寻路系统的核心功能与应用。主要内容包括:1)导航网格生成与参数设置,通过Bake操作生成可行走区域;2)NavMeshAgent组件的使用,包含寻路API和避障设置;3)OffMeshLink实现精确跳跃控制;4)NavMeshObstacle处理动态障碍物。文章详细介绍了各组件参数配置和实际应用场景,如区域跳跃、动态障碍清除等,为游戏中的AI寻路避障提供了完整的解决方案,通过组合这些功能可实现丰富的地图移动效果。

misco43的博客 1609

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Unity AI导航寻路系统

第一步搭建场景 两个平面,一个立方体,一个胶囊,一座桥(立方体) 让这个胶囊自主找立方体 将除胶囊外其他场景中物体设为静态 打开AI导航 烘培一个导航网格 给胶囊添加智能体 编辑AI寻路脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class AINavigation : M..

海月的博客 5928

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Unity 2D寻路导航 NavMeshPlus解决方案

嘻嘻

咩咩的博客 2864

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Unity自动寻路之导航

现在游戏中的自动寻路基本就是两种做法 A*算法  和Unity中的导航系统 自动寻路导航的步骤 1.对场景进行烘焙 2.为寻路物体添加NavMeshAgent组件 3.为寻路物体添加脚本  设置寻路物体的目标点触发寻路的方式 在学习导航之前  必须先学习bake(烘焙)烘焙其实就是将模型上的一些信息记录到模型上,比如光照信息等    那么为什么需要进行烘焙,由于在加载场景的时候对于模型...

weixin_36504157的博客 2098

Unity 路点寻路,自带的导航网格寻路,A* Pathfinding project 区别

引言 寻路系统是当今众多游戏中不可或缺的功能模块。比如格子游戏中的格子寻路,塔防怪物的行进路径,捕鱼游戏中的鱼群路径,RPG游戏中的怪物AI等,不同的需求对应的寻路策略的选择也不尽相同。 正文 在Unity3D中我们一般常用的寻路策略有: 1.路点寻路(WayPoint) 路点寻路是最简单,易理解,易操作的(如下图):需要预先设置好路径点坐标集合。然后对象按照规定的坐标集...

qq_37896049的博客 5236
上一篇: unity-七(DoTween)
下一篇: Unity-九(动画和TimeLine)
Two-way-Foil
博客等级 码龄5年 15粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值