首页 > 解决方案 > 角色控制器不再掉落

问题描述

这个问题可能已经在某处被问及并得到了回答,但我没有看到 StackOverflow 上提到过这种情况。

问题:几天以来,我的带有 CharacterController 组件的游戏对象不再服从重力。它们可以在 X 和 Z 上按预期移动,但无论如何都不会掉到地上。

我不认为问题出在我制作的脚本上,因为我用一个完全没有任何代码的对象进行了测试,但它仍然卡在空中。我以为这是我在我的一个项目中意外修改的属性,但事实证明这个问题影响了我所有的 Unity 项目。

我应该重新安装 Unity,还是从头开始重新创建所有项目?

对象“3rd Person Player”是空的,圆柱体和头部是它的父对象。

编辑:正如 amitklein 所问,这是视图和检查器的图像:

[查看和检查图像

编辑 2:正如 reddit 上的要求,这里是移动脚本:

[代码]

// Character Controller
public CharacterController devonController;

//Values and movement tools
public float walkSpeed = 4.0f;
public float unchargedJumpForce = 10.0f;
public float chargedJumpForce;
public Vector3 floorMotionVector;
public Vector3 jumpVector;
public float Gravity = -9.81f;
void Start()
{
    devonController = GetComponent<CharacterController>();
}

void Update()
{
    float horizontal = Input.GetAxisRaw("Horizontal");
    float vertical = Input.GetAxisRaw("Vertical");

    floorMotionVector = new Vector3(horizontal, 0, vertical).normalized;

    if(floorMotionVector.magnitude >= 0.1f && Input.GetKey(KeyCode.LeftShift))
    {
        devonController.Move(floorMotionVector * (6 * walkSpeed) * Time.deltaTime);
    }

    else
    {
        devonController.Move(floorMotionVector * walkSpeed * Time.deltaTime);
    }
}

[/代码]

标签: unity3dcontrollergame-physics

解决方案


推荐阅读