Unity 2022 版本 寻路 NavMesh

官方教程地址
https://docs.unity3d.com/Packages/com.unity.ai.navigation@1.1/manual/index.html

在这里插入图片描述
首先装包
在这里插入图片描述
先给地图 和 阻挡 设置为静态
然后给地上行走的地方 添加组件
在这里插入图片描述
在这里插入图片描述
可以直接bake 然后会显示蓝色的可行走路径

player 添加插件
在这里插入图片描述
在这里插入图片描述
然后给角色添加脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerMove : MonoBehaviour
{public UnityEngine.AI.NavMeshAgent nav; //获取导航网格代理组件,通过此组件来告知AI目标public Transform target; //目标的位置// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){nav.SetDestination(target.position); //每帧更新目标位置}
}

搞定

跳跃点设置

场景内添加两个圆柱体 并设置为静态 起始圆柱体添加组件 OffMeshLink
并把起始圆柱体和结束圆柱体拖入到下面的start 和 end 里
在这里插入图片描述
设置成功后 他俩之间会连上一根线
在这里插入图片描述
如果距离和位置正确 会显示粗黑色的线 并且圆柱体周围会缠绕一圈黑色的圈
如果失败了 就是浅色的 也没圈 下图是失败的样子
在这里插入图片描述
下图是正确的样子
在这里插入图片描述
在这里插入图片描述
设置成功后 bake一下路径就可以了
然后让你的行动目标点设置为你的结束点 也就是下面那个圆柱体 他就会自动的走到起始点 并移动过去了

你可以看到 两个平面其实是不挨着的
那下面这个平面需要添加NavMeshSurface吗?
在这里插入图片描述
答案是 如果你用 OffMeshLink 给他连接上 那就不需要添加了 他会自动把路径铺上

官方教程地址

https://docs.unity3d.com/Packages/com.unity.ai.navigation@1.1/manual/index.html

障碍物

Nav Mesh Obstacle
不需要设置成静态
添加这个组件后 他就变成了一个障碍物 但是路径上是看不出来的 你的主角移动的时候 也不会绕开他 而是直接顶上去
类似这样
在这里插入图片描述
如果你勾选了 Carve 选项
那么他会变成下面的样子 路径被开了一个口子
在这里插入图片描述
下面的选项 Carve Only Stationary
如果勾选上
那么只有在停下的时候 才会重新构建路径
不停的话 还是会直接装上 顶住的

move threshold 是干啥的呢
他表示 移动多少距离 重新生成路径

time to stationary 的意思是
停止多长时间 会重新生成路径

time to stationary是和 Carve Only Stationary 成对使用的
也就是说 如果勾选了 Carve Only Stationary
time to stationary 才会生效
move threshold 就失效了

如果不勾选 Carve Only Stationary
那么只有 move threshold 生效

现在让这个物体 动起来

public Vector3 vst = new Vector3(-2.71000004f, 0.5f, -2.50999999f);
public Vector3 ved = new Vector3(-2.71000004f, 0.5f, -4.23000002f);
public float speed = 1.0f;
void Update()
{float pingPong = Mathf.PingPong(Time.time * speed, 1.0f);transform.position = Vector3.Lerp(vst, ved, pingPong);
}

在Unity中,Nav Mesh Obstacle组件的carve属性用于控制障碍物是否会改变导航网格的形状。如果启用了carve属性,则当Nav Mesh Obstacle与导航网格重叠时,它会“雕刻”出一个空间,使导航网格围绕该障碍物进行重新生成。

默认情况下,Nav Mesh Obstacle不会雕刻导航网格,而是简单地将其视为障碍物并阻挡导航代理的路径。但是,如果您需要更精细的控制,可以使用carve属性来确保导航代理在遇到障碍物时能够正确地行动。

例如,如果您有一个长方体障碍物,并且想让导航代理能够穿过该障碍物中心,而不是绕过它,那么您可以启用carve属性。这将确保导航网格为该障碍物“雕刻”出一个空间,在导航代理到达障碍物时穿过该空间,而不是绕过它。

请注意,启用carve属性可能会增加导航网格的计算成本,因为它需要重新生成导航网格以适应障碍物的形状。因此,您应该在必要时才使用carve属性,以避免对性能产生不必要的影响。

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

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

相关文章

C++的基础语句

C前奏 1.变量的定义2.键入和输出3.运算符4.sizeof()函数5.判断6.goto语句7.总结 这个专题,我会用简单的语言介绍C的语法,并会适当的对比实现相同或相似功能的C与python代码写法上的不同。 1.变量的定义 对于python来说,我们可以跳过定义直接…

梯度下降法

前言:在均方差损失函数推导中,我使用到了梯度下降法来优化模型,即迭代优化线性模型中的和。现在进一步了解梯度下降法的含义以及具体用法。 一、梯度下降法(入门级理解) 定义:梯度下降是一种用于最小化损失函数的优化…

OceanBase入选Gartner®云数据库管理系统魔力象限“荣誉提及”

近日,全球IT市场研究和咨询公司Gartner发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》(全球云数据库管理系统魔力象限)。全自研分布式数据库 OceanBase 入选“荣誉提及”,2022 年推出的云数据库 OB Clo…

成都直播电商市场发展空间广阔,成都直播产业园预计未来三年市场规模持续上升

近年,直播产业已经成为了国民经济复苏的重要平台之一。随着“直播带货”这种消费模式的兴起,目前,成都直播市场上展现出了强大的潜力和活力,并且加快了实体商业向数字化转型的步伐,预计,成都直播产业园未来…

【elfboard linux开发板】7.i2C工具应用与aht20温湿度寄存器读取

1. I2C工具查看aht20的温湿度寄存器值 1.1 原理图 传感器通过IIC方式进行通信,连接的为IIC1总线,且设备地址为0x38,实际上通过后续iic工具查询,这个设备是挂载在iic-0上 1.2 I2C工具 通过i2c工具可以实现查询i2c总线、以及上面…

Jenkins部署项目

一.安装jenkins 1.1进入jenkins官网下载jenkins war包,上传到服务器/usr/local目录。 1.2执行启动jenkins命令,(注意jenkins版本需要的jdk版本) /usr/local/java11/bin/java -Djava.awt.headlesstrue -jar /usr/local/jenkins.wa…

『华为云耀云服务器实战』|云服务器如何快速搭建个人博客(图文详解)

文章目录 引言一、云耀云服务器L实例介绍1.1 准备一个华为云耀云服务器1.2 重置实例密码1.3 利用xshell 远程连接 二、安装环境软件2.1 安装git准备远程拉取2.2 安装Docker 和 Docker compose 三、博客开源项目介绍3.1 操作界面展览 四、拉取项目搭建个人博客4.1 拉取项目进行配…

优势演员-评论家算法 A2C

优势演员-评论家算法 A2C 优势演员-评论家算法 A2C主要思想目标函数 优势演员-评论家算法 A2C 前置知识:演员-评论家算法:多智能体强化学习核心框架 主要思想 AC 网络结构: 策略网络 - 演员: 这个网络负责根据当前的状态选择动作。它输出的是…

嵌入式-C语言-const关键字-指针常量和常量指针

C语言-指针常量和常量指针 一:结论 1.常量指针 :b的值不能变,但是b的地址能变 const int* b &x; 2.指针常量:p的地址不能变,但是p的值能变 int* const p &y; 3.巧记口诀 星在(const&#xf…

深度强化学习DQN训练避障

目录 一.前言 二.代码 2.1完整代码 2.2运行环境 2.3动作空间 2.4奖励函数 2.5状态输入 2.6实验结果 一.前言 深度Q网络(DQN)是深度强化学习领域的一项革命性技术,它成功地将深度学习的强大感知能力与强化学习的决策能力相结合。在过…

浏览器请求的并行与串行以及并发数的管控

1 浏览器在发起网络请求数据的时候,允许同时请求5-7个接口。即使我们同时请求20个接口, 浏览器也只会优先请求5-7个,当5-7个有请求成功或失败的接口之后,在进行下一个填充请 求,一直到所有的接口请求完…

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】 1、概述2、实验环境3、 自我总结4、 实验过程1、验证上位机QT程序1、下载样例代码2、修改qt程序3、运行测试验证 2、验证下位机ESP32程序1、下载样例代码2、更改ESP3…