克劳奇脚本/缩放仅从一侧转换
本文关键字:转换 缩放 脚本 | 更新日期: 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组件,所以使用物理。
您是否尝试过使用CharacterController
的height
属性?
你可以在IsCrouchingVoid()
的方法中降低它的高度,而不是仅仅玩scale
来获得蹲伏的行为。