Unity初心者です。
キャラクターの移動はtransform.Translateを使うとできることを二週間ほど前に知りました。
また、キャラクターは移動させるだけではなく、回転(自転)もさせなければ自然な動きにならない事、それをするには「Quaternion」を使えば良いことを、つい昨日知りました。
そして今日、キャラクターをキーボードで動かすために以下のスクリプトを書きました。
しかし、このスクリプトをアタッチしても思った通りには動きませんでした。
具体的には、
・z方向に移動しようとすると、キャラクターがx軸に回転してしまう
・x方向に移動しようとすると、y軸でその場でキャラクターがグルグル回ってしまう
という結果でした。
最初はif文の()内に「diff.magnitude」と書いたのですが、結果はあまり変わりませんでした。
そこで、僕は初心者ながらに
「y軸のベクトルの計算を無効にすれば良いのではないか」
と思いました。
y軸の移動までもが計算されQuaternionで処理されてしまうと、キャラクターがジャンプした時や落下した時に上方向または下方向に向いてしまうと思ったからです。
ですが、ググってもベクトル計算(Vector3)からy軸のみを無効化する方法は出てきませんでした。
以上の事を踏まえて、今回僕が知りたい事は次の二つです。
1.座標のベクトル計算からy軸のみを無効化する方法はないのでしょうか?
2.このスクリプトで僕がやりたいのはTPSの自キャラの移動処理です。
このスクリプトではそれができなかったのですが、上手くいかない原因は何でしょうか?
今日1日、自力で解決を試みましたがダメでした。
長文になってしまいましたが、回答よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー