概要

こんにちは!Qitzの平田です!

前回に続いて、今回はUnity公式の2Dアクションチュートリアルを徹底的に丁寧に解説して行きます!

Unity公式Boltのチュートリアル(英語)のキャラクターをキーボード矢印に応じて水平移動するところの続きからです!

https://learn.unity.com/tutorial/character-controller?uv=2019.3&projectId=5ea809f0edbc2a00215f1fa5#5ea81ee4edbc2a00215f245c

前回作成したInputAxisの値を変数にUpdateで代入する

FlowGraphの何もないところで右クリックし、Set Variableと入力

検索候補の[Set Graph Variable]を選択します。

オレンジの入力欄にMovementと入力します。

あとは、Upadateの処理に繋ぎ

Multiplyの値をUpdateのタイミングでMovementに代入するようにします。

プレイヤーのRigidBody2Dに速度を伝える処理を作る

ちょっと駆け足で行きます!(公式も駆け足なので・・・=3)

get velocityと検索欄に入力して [Rigidbody 2D : GetVelocity]を選択

Unitが追加されました。

Get Yと検索欄に入力を行い、Vector 2:Get Yを選択

Vector 2:Get YのUnitを追加

vector2 createと入力して[Create Vector2 (x,y)]を選択

Unitが配置されました。

get variableと入力して[Get Graph Variable]を選択します。

配置されたUnitのオレンジの値にMovementと入力します。

これは、先ほどUpdateで代入したMovementの値を受け取るためのUnitになります。

set velocityと入力して[Rigidbody 2D : Set Velocity]を選択します。

Unitが配置できました。

配置したUnitを繋ぎます!

このような形に配置したUnit達を繋ぎます。

この処理は何を行っているのか?

この処理は、

1:Get VariableでMovementの値を取得

2:GetVelocityで自身の現在速度を取得

3:Vector 2 Get YでYの値だけ取得

4:Vecor 2 Createで新しくVector2を1と3の値から作成

5:SetVelocityで4で作成した値を自身の速度に再び代入する

という処理を行っています!

まだ動かない処理

上の処理をつなげた状態だけだと、Unit達が半透明表示になっていて処理が有効化されていないことがわかります。

これは、緑矢印(処理を発火させる入り口)にまだ何もコネクタが繋がっていないためです。

Updateの流れにつなげて処理を動かす

上で作った処理を動かしたいので

Updateの緑色矢印とつながっている流れ(今回はSetValue)の

緑矢印とSetVelocityの緑矢印の入り口を繋げます。

これで、Updateのタイミングで先ほど作った処理が動作するようになりました!

動かして確認してみます!

Playerがキーボードの矢印に応じて動き回るようになりました!