[Unity]カメラの向きに対応したプレイヤーの動き
前回、カメラリセットを実装しましたが、カメラの動きにプレイヤーの操作が合っていない問題が生じました。(プレイヤーの動きが、カメラの向きを基準にするにではなく、プレイヤーの向きを基準にしているため、操作しづらい)
[Unity] カメラリセットの実装|るみね (note.com)
今回は、その対処についてです。
コードを以下のように変更しました。
x = Input.GetAxisRaw("Horizontal"); // x方向のキー入力
z = Input.GetAxisRaw("Vertical"); // z方向のキー入力
Player_movedir = new Vector3(x, 0, z).normalized; // 正規化
Player_movedir = mainCamera.transform.forward * z + mainCamera.transform.right * x; // カメラの座標系と入力の座標系を同期
初めは回転行列や四元数により、移動方向を制御しようと考えていましたが、誤差や計算コストを考えると、こっちの方がいいのかなと思いました。(kwskは知りませんが)
以上です。
次は、ジャンプかステップ(回避)の実装について取り組みます。
あ、今作っているのは、アクションゲーム用のプレイヤーです。