基本上,我已经尝试将速度编码到我的游戏中,这很有效。减速有效,但并非恰到好处。
我的问题是,根据我的代码,我的速度 z 和 x 无法达到 0,因为它只是在正值和负值之间进行斗争。
但我看不到任何其他方式来阻止这种情况的发生,并正确地减少到 0。
我的代码:
if((!cc.isGrounded)) {
velocity.y -= gravity;
}
if((velocity.z != 0)) {
velocity.z = Mathf.Lerp(velocity.z, 0, deaccelerationSpeed);
}
if((velocity.x != 0)) {
velocity.x = Mathf.Lerp(velocity.x, 0, deaccelerationSpeed);
}
if(isRightDown) {
velocity.x = sidewayMovementSpeed;
} else if(isLeftDown) {
velocity.x = -sidewayMovementSpeed;
}
if(isForwardDown) {
velocity.z = forwardMovementSpeed;
} else if(isBackDown) {
velocity.z = -backwardMovementSpeed;
}
我几乎要问的是,是否有任何不同的方式来处理速度,或者是否可以解决我的问题?