Unity事例ノート

UNITY

斜め移動で速くならないようにする

十字キーで操作する際、斜めに移動したときだけ、少し速く動いてしまうことがあります。

横と縦の移動量をぞれぞれ1とすれば、斜めの移動量はおよそ1.4になります。

normalizedを使って、斜めのベクトル正規化し、1に変換する必要があります。





normalizedによる正規化

Cubeを作成し、リジッドボディを追加。

UseGravityのチェックを外しておきます。

CubeMove.csを作成し、Cubeに追加します。

CubeMove.csを記述します。

ゲームプレイしてみましょう。

十字キー操作で、斜め移動しても、上下移動と同じ速さになっています。

三平方の定理から、斜めのベクトルは√2。すなわち1.414…です。

Debug.Logでコンソールを見てみると、斜め移動のとき、XとYの値は3.5に。

5 ÷ 1.414… = 約3.5

よこ、たての移動量が5に対し、斜めは正規化された数値3.5で移動していることがわかります。