
Assetsフォルダ内に画像をドロップします。

シーン上に画像をドロップすることで、キャラクターを配置します。

移動させる transform.Translate
移動用スクリプトを作成します。
Assetsフォルダ内で右クリック → C# Scriptを選択。(画像参照)


VSでコードを編集します。
1.class名とファイル名(c#Scriptファイルを作成したときに設定した名前)は合わせる。
2.移動用のコードをUpdate()に記述。

Scriptをキャラクターにドロップ。

Playを押して動作確認します。

インスペクタ上から速度を調整する
毎回コードを編集してバランスを調整するのは大変なので、インスペクタ上から編集できるよう、変数の記述を修正します。
1.moveSpeed変数を定義。
2.Translateの値をmoveSpeed変数に置き換える

Publicで定義した変数がインスペクタ上に表示されています。この数値を直接変更することで値を変えることができます。



FixedUpdate()
Update() → FixedUpdate() へ変更します。
変更した理由はUpdate()が1フレーム毎にずっと実行するメソッドであり、PCやスマホなど動作させるもののスペックに依存し、挙動が変わる為。
FixedUpdate()へ変更することで、 50回/sec. 実行させ、どのデバイスでも狙った挙動となるようにします。

下は先ほどと同じ moveSpeed = 0.1f ですが、Update()のときよりも明らかに挙動が違います。

回転させる transform.Rotate
移動させるTranslateをRotateに置き換えるだけ

スクリプトをキャラクターにドロップ。
先ほどのMoveTestスクリプトはチェックを外して無効化しています。


画像の軸を変更する
画像が座標の中心に来ておらず、Z軸を中心に回転させた際、上のように画像の少し上を中心に回転してしまっている為、軸を変更するため、空のオブジェクトを作成します。


オブジェクトCharacterPiyoを親とするため、子オブジェクト(PiyoPiyo)を親としたいオブジェクトにドロップします。


子オブジェクトの座標を親に合わせる。
Transform > :マークのResetを選択

親の中心座標にキャラクターが位置するように子の座標を調整します。
先ほどアタッチしたスクリプトは削除しています。
(後ほど親の座標を中心に回転させる為)

親オブジェクトにスクリプトをドロップします。状態としては下記のようなイメージです。
親:移動用スクリプト保管場所
子:画像保管場所

Playで動作確認すると、回転軸が親座標を中心になっています。

コメント