unity学习笔记
一、动态障碍物
在Unity中,动态障碍物通常是指能够在运行时发生变化或移动的障碍物。这些物体通常不是静态的,而是具有运动、变换或其他动态属性。
示例:在导航网格中一开始游戏人物的前方有障碍物,人物无法移动过去,我们希望这个障碍物时可以移动,当移开之后角色就可以穿过去了,如下:
但是移开之后会发现中间的网格是断开的,因此我希望将这个障碍物设置为动态障碍物。因此做如下设置:
将这个障碍物重新设置,不勾选静态的
然后重新在导航界面点击bake,然后网格就会重新计算,会发现中间的障碍物不论在不在其中的网格是通的。
现在的效果变成了这个障碍物不论在不在游戏人物都会通过,而我们的目的是当障碍物存在时不能移动过去,障碍物不存在时才能移动过去。
解决办法,为这个障碍物添加
Nav Mesh Obstacle组件:
NavMeshObstacle组件是Unity中用于处理导航障碍物的特定组件。它可以附加到游戏对象上,用于告诉导航系统哪些区域是可行走的,哪些是障碍物。这个组件提供了一些属性和方法,使得在运行时动态修改障碍物的形状和大小成为可能。
主要属性
Shape(形状):
Shape 属性定义了障碍物的形状,可以是`Box`(方块)、`Capsule`(胶囊体)。不同的形状适用于不同类型的障碍物。
Center (中心点):
Center 属性定义了障碍物的中心点相对于游戏对象的位置。这可以用来调整障碍物的位置。
Size(大小):
Size 属性定义了障碍物的大小。对于"Box`和`Capsule `形状,它定义了障碍物在三个轴上的尺寸。
切割:
移动阈值:就是最小移动距离来重新烘焙,越小重新计算的速度越快。
静止时间:障碍物要禁止多长时间,才会进行切割。
仅在静止时切割;勾选这个前面的两个选择才有意义,否则只要一开始移动就会立刻进行烘焙,这样会浪费性能。
作用:当选择这个属性后,会将导航网格切割开。意思是一个物体是切割的动态障碍物,会给我们动态的重新产生一次烘焙,烘焙出来一个新的网格。
当我们在游戏中运行时将这个障碍物移开时,它会重新计算网格,重新帮我们进行烘焙。
当添加这个组件后,当障碍物没有移开之前游戏人物会在障碍物前面停下来。说明当前作为障碍物时生效的。这个就是切割的作用。
二、网格连接
这个有个掉落高度属性,设置这个数值可以去设置游戏人物的跳跃最大高度。
比如将其设置为10,然后点击Bake,有时没有任何变化。这是因为需要对其重新进行设置,我们选中支持跳跃的物体,在导航中的对象属性下选择Generate OffMeshLinks.
这样重新设置后,再次点击烘焙,就能看到在网格中有些部分被连接起来了。
这样就游戏人物移动到台子上就可以直接跳跃下来了。
跳跃距离:
设置这个属性可以在两个物体之间进行跳跃,例如将跳跃距离设置为10.设置后会发现两个台子之间有线段连接,这个就表示这两个物体之间可以跳跃。
箭头就表示跳跃的方向,现在的方向是只能从左边跳跃到右边。
如何设置指定两点之间来回跳跃?如下图中两点,如何设置呢?
任意选择一个物体,为其添加Off Mesh Link组件。
将两个立方体分别挂载到起始和结束位置。这样设置后就能两点之间来回移动。
自动更新位置,当选中这个以后,当物体移动到其他位置,他会重新计算两点传送回的位置。这个连接会随着物体移动。
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!