基本的に、私は自分のゲームに速度をコーディングしようとしましたが、これはある程度機能します。減速は機能しますが、正しくありません。
私の問題は、速度 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;
}
私が求めているのは、速度を処理する別の方法はありますか、それとも私の問題を解決する方法はありますか?