寻路
文章平均质量分 95
弹吉他的小刘鸭
Happiness is nothing but self-building.
展开
-
使用体素场存储场景数据
对于一个体素场,可以利用两个数组来存储,数组spanArr用于存储体素的上表面高度,indexArr用于标识每一列体素在spanArr里的下标位置,举个例子,体素场如下图所示,每一个格子代表空间上的一列体素,体素的下坐标默认均为0,所以不进行记录,下图一个格子里数据为6,8,10,说明该列有两个体素,第一个体素下表面高度为0,上表面高度为6,第二个体素下表面高度为8,上表面高度为10:按照从上到下,从左到右的顺序spanArr = {3,5,7,9,4,3,8,2,2,6,8,10,10,2,2,3,原创 2021-05-24 14:26:12 · 1034 阅读 · 0 评论 -
Recast Demo中BVH树的构建
数据结构介绍首先介绍BVH树的数据结构://BVH(Bounding Volumn Hierachy,Chunk means cube)struct rcChunkyTriMesh{ inline rcChunkyTriMesh() : nodes(0), nnodes(0), tris(0), ntris(0), maxTrisPerChunk(0) {}; inline ~rcChunkyTriMesh() { delete [] nodes; delete [] tris; } rcC原创 2020-11-16 16:54:48 · 961 阅读 · 0 评论 -
Unity NavMesh的Layer合并的问题
Unity的导航网格拥有32种不同的AreaType类型,我发现了这么一个情况,对于两个重叠在一起的不同AreaType类型的物体,最终的导航网格到底是按照哪一个?如下图所示的例子,展示了第一种情况,较高的Cube为Walkable类型,较矮的为自定义的类型,设置完成后Bake导航网格,可以看到地面表面是什么物体,出现的就是什么类型的导航网格。再来看看第二种情况,如果再把矮的Cube拉高一点,让二者高度更接近,如下图所示:再去Build导航网格,会发现出现的都是较矮的Cube的导航网格类型,如下图原创 2020-08-25 18:57:06 · 650 阅读 · 0 评论 -
Unity使用OffMesh-Link时匹配动画动作
正常Unity的OffmeshLink是嗖的一下传送过去,如果要想在这里用自己的动画动作跳跃过去的方法如下,主要是知道Unity的一些相关API的使用方法。下面是一些重要的API或数据结构:_navAgent.autoTraverseOffMeshLink = false; //in Start(),设置不要自动进行Offmeh的传送_navAgent.currentOffMeshLinkData; //the link data - this contains start and end point翻译 2020-08-21 11:24:38 · 798 阅读 · 0 评论 -
通过脚本设置UnityNavigation里面Bake的相关参数
很无语的是Unity连这个基本的API都没提供,下面代码是通过UnityEditor.AI里的NavMeshBuilder的navMeshSettingsObject来通过SerializedObject实现设置参数的,代码如下:using UnityEditor;using UnityObject = UnityEngine.Object; namespace Impossible.Ete{ public sealed class NavMeshSettings {转载 2020-08-07 11:21:10 · 782 阅读 · 0 评论 -
RecastNavigation------体素化和高度场生成解析
像素化是将平面上的2D图像转化为一个个小正方形,与此类似,RecastNavigation的体素话过程是把空间几何体转换为一个个小正方体的组合(与游戏:我的世界相似)体素化过程如下:一. 将整个场景体素化对于任何一个在欧几里得坐标系里的场景,都可以找到一个三边与xyz...原创 2020-01-13 10:07:47 · 4505 阅读 · 0 评论