包含此页的版本:
不含此页的版本:
角色控制器主要用于第三人称或第一人称玩家控制,不使用刚体允许游戏对象受到模拟重力和其他力影响的组件。更多信息
请参阅术语表物理。
| 财产 | 描述 |
|---|---|
| 坡度限制 | 将碰撞器限制为仅爬坡坡度低于指示值(以度为单位)。 |
| 步进偏移 | 只有当角色离地面比指示值更近时,角色才会上楼梯。这不应大于角色控制器的高度,否则会生成错误。 |
| 蒙皮宽度 | 两个碰撞体可以相互穿透,深度与其蒙皮宽度一样深。较大的蒙皮宽度可减少抖动。低蒙皮宽度会导致角色卡住。一个好的设置是将此值设置为半径的 10%。 |
| 最小移动距离(Min Move Distance) | 如果角色试图移动到指示值以下,它将根本不会移动。这可用于减少抖动。在大多数情况下,此值应保留为 0。 |
| 中心 | 这将在世界空间中偏移胶囊碰撞体,并且不会影响角色的旋转方式。 |
| 半径 | 胶囊碰撞体半径的长度。这本质上是碰撞器的宽度。 |
| 高度 | 角色的胶囊碰撞器胶囊体形状的碰撞器组件,用于处理游戏对象(如桶和角色肢体)的碰撞。更多信息 请参阅术语表高度。更改此设置将沿Y轴在正负方向上缩放碰撞体。 |
Layer Overrides 分段提供的属性允许您覆盖此碰撞器的项目范围的基于层的碰撞检测设置。
| 财产 | 描述 |
|---|---|
| 图层覆盖优先级 | 定义此碰撞器覆盖的优先级。当两个碰撞器具有冲突的覆盖时,将采用具有较高值优先级的碰撞器的设置。 例如,如果 层覆盖优先级(Layer Override Priority) 为 1 的碰撞体与 层覆盖优先级(Layer Override Priority) 为 2 的碰撞体发生碰撞,则物理系统将使用 层覆盖优先级(Layer Override Priority) 为 2 的碰撞体设置。 |
| 包括图层 | 选择要包含的图层碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息 请参阅术语表与这个碰撞器。 |
| 排除图层 | 选择要在与此碰撞器碰撞中排除的层。 |
传统的毁灭战士风格的第一人称控制在物理上并不逼真。这个角色以每小时 90 英里的速度奔跑,立即停下来,然后立即转身。因为它太不切实际了,所以使用刚体和物理来创建这种行为是不切实际的,而且会感觉不对劲。解决方案是专门的角色控制器。它只是一个胶囊形状碰撞体(Collider) 用于处理对象物理碰撞的不可见形状。碰撞体不需要与对象的网格体形状完全相同 - 在游戏中,粗略的近似值通常更有效且难以区分。更多信息
请参阅术语表可以告诉它从脚本朝某个方向移动。然后,控制器将执行移动,但会受到碰撞的约束。它将沿着墙壁滑动,爬上楼梯(如果楼梯低于台阶偏移量),并在坡度限制内的斜坡上行走。
控制器不会自行对力做出反应,也不会自动将刚体推开。
如果你想使用角色控制器推动刚体或对象,你可以通过脚本编写 OnControllerColliderHit() 函数将力应用于与之碰撞的任何对象。
另一方面,如果你希望你的玩家角色受到物理影响,那么你最好使用刚体而不是角色控制器。
你可以修改 高度(Height) 和 半径(Radius) 以适合角色的网格Unity 的主要图形基元。网格构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 表面必须转换为多边形。更多信息
请参阅术语表. 建议始终使用大约 2 米来制作类似人类的角色。您还可以修改胶囊的中心,以防枢轴点不在角色的确切中心。
步进偏移也会影响这一点,对于 2 米大小的人,请确保此值介于 0.1 到 0.4 之间。
坡度限制不应太小。通常使用 90 度的值效果最好。由于胶囊形状,角色控制器将无法爬上墙壁。
蒙皮宽度(Skin Width) 是调整角色控制器时需要正确处理的最关键属性之一。如果你的角色卡住,很可能是因为你的蒙皮宽度太小。蒙皮宽度(Skin Width) 会让对象稍微穿透控制器,但它会消除抖动并防止它卡住。
最好将皮肤宽度保持在至少大于 0.01 且大于 半径的 10%。
我们建议将 最小移动距离(Min Move Distance) 保持在 0。
请参阅此处的角色控制器脚本参考