気軽に遊べるミニゲームを制作しています

iPhone, iPad専用

2Dキャラを動かす1

Unity C#
ぴよぴよです

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

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

移動させる transform.Translate

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

MoveTestとしました。

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

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

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

インスペクタ上から速度を調整する

毎回コードを編集してバランスを調整するのは大変なので、インスペクタ上から編集できるよう、変数の記述を修正します。

1.moveSpeed変数を定義。
2.Translateの値をmoveSpeed変数に置き換える

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

0.01にしてみました

FixedUpdate()

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

FixedUpdate()へ変更することで、 50回/sec. 実行させ、どのデバイスでも狙った挙動となるようにします。

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

回転させる transform.Rotate

移動させるTranslateをRotateに置き換えるだけ

Z軸方向を軸に回転させたいので、変数の位置を変更しています。 Rotate(X軸, Y軸, Z軸)

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

画像の軸を変更する

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

目のちょっと上あたりが中心軸となっています。
親オブジェクトとなるCharacterPiyoを作成

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

子となった状態

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

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

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

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

コメント

タイトルとURLをコピーしました