【问题标题】:Crouch Script/ Scaling transform from one side only蹲伏脚本/仅从一侧缩放变换
【发布时间】:2015-10-14 11:47:30
【问题描述】:

我正在尝试制作一个蹲伏脚本,但我的代码有问题,我在这里被困了这么多小时,我仍然不知道出了什么问题。

我基本上只是想降低我的玩家转换为蹲下的高度,并增加它以站立。

这是我的代码:

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 组件,因此不能使用 Physics.CapsuleCast 功能。

【问题讨论】:

    标签: c# unity3d transform scale


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2018-01-07
      • 1970-01-01
      相关资源
      最近更新 更多