《守望先锋》角色控制器介绍及使用方法介绍

《守望先锋》角色控制器介绍及使用方法介绍

Introduction to character control

Rigidbody physics

Character Controller component reference

角色控制器 (Character Controller) 主要用于第三人称玩家控制或者是不使用__刚体__物理组件的第一人称玩家控制。

unity 角色控制器_unity角色控制器角色跳跃_unity2d角色控制器

属性属性:功能:

Slope Limit

将碰撞体限制为爬坡的斜率不超过指示值(以度为单位)。

Step Offset

仅当角色比指示值更接近地面时,角色才会升高一个台阶。该值不应该大于角色控制器的高度3D角色,否则会产生错误。

Skin width

两个碰撞体可以穿透彼此且穿透深度最多为皮肤宽度 (Skin Width)。较大的皮肤宽度可减少抖动。较小的皮肤宽度可能导致角色卡住。合理设置是将此值设为半径的 10%。

Min Move Distance

如果角色试图移动到指示值以下,根本移动不了。此设置可以用来减少抖动。在大多数情况下,此值应保留为 0。

Center

此设置将使胶囊碰撞体在世界空间中偏移,并且不会影响角色的枢转方式。

Radius

胶囊碰撞体的半径长度。此值本质上是碰撞体的宽度。

Height

角色的__胶囊碰撞体__高度。更改此设置将在正方向和负方向沿 Y 轴缩放碰撞体。

Character Controller

Character Controller详细信息

传统末日风格的第一人称控制在现实中并不真实。该角色每小时能跑 90 英里,可以立即停止并急转弯。因为该角色非常不真实,所以使用刚体和物理组件来创造这种行为有点不切实际,并会让玩家产生错觉。解决方案是使用专门的角色控制器。角色控制器只是一个胶囊形状的__碰撞体__,可以通过脚本来命令这个碰撞体向某个方向移动。然后,控制器将执行运动,但会受到碰撞的约束。控制器将沿着墙壁滑动,走上楼梯(如果低于 Step Offset 值),并走上 Slope Limit 设置范围内的斜坡。

控制器本身不会对力作出反应,也不会自动推开刚体。

如果要通过角色控制器来推动刚体或对象,可以编写脚本通过 OnControllerColliderHit() 函数对与控制器碰撞的任何对象施力。

另一方面,如果希望玩家角色受到物理组件的影响,那么可能更适合使用刚体,而不是角色控制器。

微调角色

可以修改 Height 和 Radius 属性来适应角色的网格。对于人形角色,建议始终使用 2 米左右的值。如果轴心点并非刚好在角色的中心橙光游戏,还可以修改胶囊体的 Center 属性。

Step Offset 属性也可能有影响unity 角色控制器,对于身高 2 米的人,请确保此值在 0.1 到 0.4 之间。

Slope Limit 不应太小。通常,使用 90 度的值效果最佳。由于胶囊体形状的原因,角色控制器将无法爬墙。

Don’t get stuck

要正确调整角色控制器,__Skin Width__ 属性是最重要的属性之一。如果角色被卡住unity 角色控制器,那么很可能是因为 Skin Width 设置过小。Skin Width 允许对象轻微穿透控制器,但可消除抖动并防止被卡住。

最好是让 Skin Width 的值至少大于 0.01 并且比 Radius 的值大 10%。

建议将 Min Move Distance 保持为 0。

请参阅此处的角色控制器脚本参考

提示

Introduction to character control

Rigidbody physics

文章来源:https://docs.unity3d.com/cn/2022.1/Manual/class-CharacterController.html