0

基本的に、私は自分のゲームに速度をコーディングしようとしましたが、これはある程度機能します。減速は機能しますが、正しくありません。

私の問題は、速度 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;
}

私が求めているのは、速度を処理する別の方法はありますか、それとも私の問題を解決する方法はありますか?

4

1 に答える 1