target为你想要移动的终点物体。
使用GetComponent<NavMeshAgent>().SetDestination(target.position);是角色朝着目标运动
-
Agent Radius:定义网格和地形边缘的距离
-
Agent Height:定义可以通行的最高度
-
Max Slope:定义可以爬上楼梯的最大坡度
-
Step Height:定义可以登上台阶的最大高度
-
Drop Height:允许最大下落距离
-
Jump Distance:允许最大的跳跃距离
-
Agent Type 寻路网格类型 与Navigation面板相对应,默认为Humanoid,可以自己添加网格类型。
-
-
Base offset:组件的竖直方向的偏移量;
-
Speed:角色移动速度;
-
Agular Speed:角色转动角速度;
Acceleration:加速度(加速度是矢量,有大小有方向,在加速时是加速度,减速时是减速的加速度);与角色在转弯时的转动半径有关,加速度越大转动半径越小。
StoppingDistance:距离目标点多远就停止(速度不能太快,加速度不能太小,否则跟目标点距离等于stoppingdistance时停不下来)
Radiu:寻路组件半径;
Height:寻路组件高度;
Quality:寻路精细度,速度越快对寻路精细度要求越高;
Priority:寻路权重(0-99,值越小优先级越高,优先级低的游戏寻路组件需要绕着他走);
Auto traverse off mesh Link:是否支持off mesh link功能;
Auto repath :自动重新规划路径;
Area Mask:区域覆盖,当前寻路组件没有覆盖的区域,即使有时可行区域,对当前这个组件来说也是不可行区域;与Nav Mesh Area相对应。
-
-
-
Area Mask 还可以通过代码控制,详解请观看下列视频
-
263 0409_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1QU4y197pT?p=63&vd_source=b920c756855002eb84da0f27a93771cc
Off Mesh Link介绍
主要作用将不连续的路段,进行搭桥。
在工程中创建两个空物体然后拖到Off Mesh Link组件面板的Start和End位置。
Nav Mesh Obstacle寻路动态碰撞
-
如果出现障碍物的话,一般也是设置成
静态
,参与Navigation的
导航烘焙
,这样我们角色导航时不会与静态物体发生
碰撞
-
但是如果我们的障碍物不是静态的,是
动态
的时候,比如我们是通过代码实例化出的一个物体,并没有参与
导航烘焙
-
那这个时候就需要
Nav Mesh Obstalce
组件来提供这个功能了!
-
Shape:选择障碍的几何形状
-
Carve:如果勾选,会重新渲染网格.勾选上该属性后,会出现如下三个可以控制的参数
-
Move Threshold:[移动阈值]
大于该值的移动,才认为是真正发生了移动。
-
Time To Stationary:[时间静止]
每间隔多长时间,检查一次该障碍物的位置,如果发生了移动则动态的更新导航
网格的数据
-
Carve Only Stationary:[仅雕刻静止物体]
勾选后,则按上面的时间间隔,固定的检查位置,固定时长更新网格数据;
如果不勾选,则是每帧都会检查位置,如果发生位移,立刻更新网格数据。
-
unityAI寻路组件
常用API:
-
ActivateCurrentOffMeshLink :激活或禁止当前off-MeshLink.
-
CalculatePath :计算到某个点的路径并储存
-
CompleteOffMeshLink :完成当前offMeshLink的移动
-
Move :移动到相对于当前位置的点
-
ResetPath :清除当前路径
-
SetDestination :设置目标点
-
SetPath :设置一条路线
-
Warp :瞬移到某点
-
remainingDistance:到目标点的距离
-
desiredVelocity:期望速度,方向指向的是到达目标点的最短路径的方向
-
Stop:停止寻路。
-
Resume:继续寻路。
我们今天使用最基础的引擎知识,来给大家创建一个简单的
AI
,可以追踪目标,攻击目标。使用
Unity
类比的话,就是一个怪物预制体,放到了寻路上,当他视野看到目标后,就一直追踪目标,然后攻击目标。
Unity
是一款强大的游戏开发引擎,而人工智能(
AI
)导航是游戏中至关重要的一部分。通过
Unity
的
AI
Navigation
系统,开发者可以轻松地为游戏中的角色实现自动导航功能。本文将介绍
Unity
中
AI
Navigation
的基础内容,帮助开发者快速入门。
【下载地址】
Unity
3D寻路插件AStarPathfindingProjectPro
Unity
3D寻路插件AStarPathfindingProjectPro是一款高效且功能强大的寻路解决方案,专为
Unity
开发者设计。它...
在
unity
编辑器中,有一个灰常好用的插件:
Navigation
。有了它1,你就可以实现人物自动走到你鼠标点击的位置,而且还会自动避开障碍物,下面就教大家如何进行创建与使用。(文章中
unity
版本:
Unity
2021.3.20f1c1)
Unity
中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往中的导航寻路系统的本质,就是在 A 星寻路算法的基础上进行了拓展和优化导航网格(NavMesh)的生成——要想角色能够在场景中
自动寻路
产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据导航网格寻路
组件
(NavMesh Agent)——寻路
组件
就是帮助我们根据地形数据计算路径让角色动起来的关键。
这里设置了Jump区域,可以在区域窗口中看到,Jump区域的优先级为2,其实我们使用的Jump区域只是我们自己规定的一个区域,意思就是能用走的区域,就不要走跳的区域,也就是说,你在平地也可以将区域设置为Jump区域,只不过人物会优先选择walkable区域,我们一般把突起的区域设置为Jump,并不是说设置了jump区域就一定要跳)因此就引入一个NavMesh Obstacle
组件
,在移动的障碍物上添加,此时就有躲避移动障碍的效果,如果勾选切割,并取消仅在静止时切割,就可以看到实时烘焙的可行走地面。
Auto Update Positions:如果启用此属性,当端点动态移动时(运行时移动端点位置),网格外链接将重新连接到导航网格。Move Threshold(移动阈值): 当障碍物的移动距离超过设置的值时,
Unity
会将其视为移动状态。Carve Only Stationary (雕刻仅固定):启用此属性,只有在静止状态才会雕刻孔洞,不启用则是实时的雕刻孔洞,更加适合快速移动的障碍物。Bi-Directional:如果启用,则可以在任一方向上遍历链接,否则,只能按照从Start到End的方向遍历链接。
3.给主角添加Nav mesh Agent
组件
4.烘焙地图,简单来说就是烘焙自动行走的路径(要注意蓝色区域为烘焙的路径,其它区域是不识别的,可以通过调整参数来达到你想要导航的区域)
5.创建一个c#代码,名为navment,挂载到要进行寻路的物体上。代码如下
using System.Collections;
using System.Collections.Gene
Unity
AI
助手语音天气播报自我介绍项目介绍思路制作准备开始
大家好,我是V
AI
N,这是我在CSDN的第一篇文章,之前一直在微博博客上写文章,今后会用CSDN给大家更新一些技术帖,还希望大家多多关照!
因为公司项目要求,今天给大家分享一个
unity
制作
AI
助手的帖子,由于网上相关的文章还是比较少的,要么就是不是特别的全面。所以分享一下,希望可以帮助到小伙伴们。
1.需要将我们说的话转成文字(语音识别)
2.
AI
助手理解我们说的话(人机交互)
3.将
AI
助手的返回信息转成语音(语
/获取
组件
agent = GetComponent < NavMeshAgent >();//如果鼠标进行点击 if(Input . GetMouseButtonDown(0)) {//获取射线 Ray ray = Camera . m
ai
n . ScreenPointToRay(Input . mousePosition);//判断射线检测是否成功 if(Physics . Raycast(ray , out hit)) {} } } }
Unity
3D导航系统()
Unity
3D
Navigation
(导航)是用于实现动态物体
自动寻路
的一种技术,它将游戏场景中复杂的结构关系简化为带有一定信息的网格,并在这些网格的基础上通过一系列相应的计算来实现
自动寻路
。
过去,游戏开发者必须自己打造寻路系统,特别是在基于节点的寻路系统中,必须手动地在
AI
使用的点之间进行导航,因此基于节点系统的寻路非常烦琐。
Unity
3D 不仅具有导航功能,还使用了导航网格(
navigation
meshes),这比手动放置节点更有效率而且更流畅。
更重要的是,