【发布时间】:2022-04-07 18:39:04
【问题描述】:
我正在使用 unity 的角色控制器工具。
问题在于,如果存在与默认角色控制器的胶囊碰撞器的碰撞,除非无法检测到与表面的任何接触,否则它不会滑落或掉落。
我就是这样使用自己的重力:
private void ApplyGravity() {
if (!characterController.isGrounded) {
gravity += Physics.gravity * Time.deltaTime * gravityFactor;
if (gravity.y > 0 && !Input.GetButton(jumpButton))
gravity += Physics.gravity * Time.deltaTime * gravityFactor * (lowJumpMultiplier - 1);
}
else if (!isJumping) gravity = Vector3.down;
CheckCollisionFlags();
movement += gravity;
}
我还没有找到任何修改角色控制器属性以应用任何滑动或添加新碰撞器来进行碰撞的方法。
我已经尝试减小胶囊对撞机的半径,但这会导致角色可以稍微穿过墙壁。
我曾考虑使用多条光线来检查身体的中部是否超出边缘,然后施加力使其下落,但我认为这可能是解决此问题的一种更简单、更优化的方法。
【问题讨论】:
-
请重新表述您对问题的初始描述。如果人们不了解您的问题是什么,他们将无法帮助您。