克劳奇脚本/缩放仅从一侧转换

本文关键字:转换 缩放 脚本 | 更新日期: 2023-09-27 18:04:27

我想做一个蹲伏脚本,但是我的代码有问题,我在这里被困了很多小时,我仍然不知道是什么问题。

我基本上只是试图降低我的球员转换到蹲下的高度,并增加它站起来。

下面是我的代码:

public float crouchSpeed;
public float crouchWalkSpeed;
public bool isCrouching = false;
public bool isCrouched = false;
void Update () {
    Crouch();
    IsCrouchingVoid();
}
public void Crouch()
    {
        if(Input.GetKeyDown(KeyCode.LeftControl) && isOnGroud)
        {
            isCrouched = !isCrouched;
            isCrouching = true;
        }
    }
    public void IsCrouchingVoid()
    {
        if(!isCrouched)
        {
            if (isCrouching)
            {
                    Vector3 temp = transform.localScale;
                    temp.y -= crouchSpeed / 60;
                    temp.x = 1f;
                    temp.z = 1f;
                    transform.localScale = temp;
                if (temp.y <= 0.5f)
                {
                    temp.y = 0.5f;
                    isCrouching = false;
                }
            }
        }
        else if(isCrouched)
        {
            if (isCrouching)
            {
                    Vector3 temp = transform.localScale;
                    temp.y += crouchSpeed / 60;
                    temp.x = 1f;
                    temp.z = 1f;
                    transform.localScale = temp;
                if (temp.y >= 1f)
                {
                    temp.y = 1f;
                    isCrouching = false;
                }
            }
        }
    }

谢谢。编辑:

我使用一个CharacterController组件,所以使用物理。

克劳奇脚本/缩放仅从一侧转换

您是否尝试过使用CharacterControllerheight属性?

你可以在IsCrouchingVoid()的方法中降低它的高度,而不是仅仅玩scale来获得蹲伏的行为。