【发布时间】: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