组件 (Components)

Character Movement 组件

CharacterMovement 是ECM系统的核心,负责执行所有与角色移动相关的工作(也称为角色发动机)。例如:附加力(apply forces)、冲力(impulses)、限制(constraints),平台交互(platforms interaction) 等。

这与Unity自带的角色控制器类似,但又有点不同,ECM的角色控制器使用了Rigidbody物理。

img/007.png

变量名 变量名的中文翻译 说明
Max Move Speed 最大移动速度 该角色可以移动的最大横向(XZ平面)速度。
包括来自外部力量的移动,如滑动,碰撞等。
Max Rise Speed 最大上升速度 沿Y轴上移的最大速度。
Max Fall Speed 最大的下降速度 沿着Y轴下移的最大速度。
Use Gravity 是否使用重力 启用/禁用角色的自定义重力。
如果启用,角色会受到自定义重力的影响。
Gravity 重力 此角色的重力大小。
我们通过此字段手动设置重力,来进行更细致的调整和控制。
Slope Limit 斜坡限制 当坡度大于此值时,角色会滑下斜坡;
当坡度小于此值时,角色会停留在斜坡上,不会下滑。
(以度为单位)
Slide Gravity Multiplier 滑动重力百分比 当角色从斜坡上滑下时,角色所受的重力的百分比。

</br>

Ground Detection 组件

这是一个抽象类(abstract class),负责执行地面检测(角色与地面接触的检测),并提供有关“地面”的信息,例如触地点(角色接触地面),地面法线(ground normal)等等。

如果你需要,你可以扩展此类来自定义您的地面检测方法。

包括三种地面检测方法,一种使用球体来表示角色的脚,第二种使用Box来表示角色的脚,以及最基础的用射线投射地面进行检测。

值得注意的是,SphereGroundDetection GroundDetection 组件中最强大的组件,也是唯一一个提供边缘检测(ledge detection)的GroundDetection组件,并且在大多数情况下你应该首选SphereGroupDetection。


Sphere Ground Detection 组件

此组件是扩展了GroundDetection 抽象类(abstract class),并使用Sphere(球体)来表示角色的“脚”。

这是所有类型的 GroundDetection 中,最强大的一个。也是唯一一个提供边缘检测(ledge detection)的GroundDetection组件,并且在大多数情况下应该成为你的首选

img/008.png

变量名 变量名的中文翻译 说明
Ground Mask 地面层 哪个层(Layer)是地面层(用于行走的地面(walkable))
Center 中心 局部空间中角色的中心位置(相对于它的pivot)。
这决定了射线投射(cast)的起点。
Radius 半径 边界(bounding)体积的半径。
这代表角色的“脚”或底部的半径。
(推荐: 此值应该是你的碰撞体半径的90-95%)
Distance 距离 射线投射的距离。
推荐: 此值应比你的碰撞体的一半高度多10%(碰撞体的高度/2*1.1)


Box Ground Detection 组件

此组件是扩展了 GroundDetection 抽象类(abstract class),并使用Box(长方体)来表示角色的“脚”。

img/009.png

变量名 变量名的中文翻译 说明
Ground Mask 地面层 哪个层(Layer)是地面层(用于行走的地面(walkable))
Center 中心 局部坐标中角色的中心位置(相对于它的pivot)。
这决定了射线投射(cast)的起点。
Radius 半径 边界(bounding)体积的半径。 这代表角色的“脚”或底部的半径。
(推荐: 此值应该是你的碰撞体半径的90-95%)
Distance 距离 射线投射的距离。
推荐: 此值应比你的碰撞体的一半高度多10%(碰撞体的高度/2*1.1)
Axis Aligned 是否轴对齐 确定该框是轴对齐还是应该跟随角色的旋转。


Raycast Ground Detection 组件

此组件是扩展了 GroundDetection 抽象类,并使用Sphere(球体)来表示角色的“脚”。

这是一种基本的、轻量级的地面检测方法。

RaycastGroundDetection组件只应在以下情况下才使用:地面大部分是平坦的,并且不需要SphereGroundDetection 提供的附加功能。

img/010.png

变量名 变量名的中文翻译 说明
Ground Mask 地面层 哪个层(Layer)是地面层(用于行走的地面(walkable))
Center 中心 局部坐标中角色的中心位置(相对于它的pivot)。
这决定了射线投射(cast)的起点。
Radius 半径 用不到(Not used)
Distance 距离 射线投射的距离。
推荐: 此值应比你的碰撞体的一半高度多10%(碰撞体的高度/2*1.1)

results matching ""

    No results matching ""