こちらの記事ではPlayerの左右反転~移動制限までを行います。
#Playerの左右反転
前回のチュートリアルでPlayerの移動までが終わりましたが、
Playerが後ろ歩きしてしまいますね。
このままだと少し不自然なので、移動方向によって画像が左右反転するようにしていきます。
前回のグラフにComparisonノーツを追加します。
Comparisonノーツは、AとBに入力された値の関係性を見てTrueかFalseのうちどちらかの値を返すノーツです。
上の画像のような感じで、Aの部分にMultipyのA*Bの値を入れてください。
全体を見るとこんな感じです。Comparison(in Logic)ノーツのBは0のままでOKです。
次にSprite Renderer:Set Flip Xノーツを追加します。
SetFlipXはTrueかFalseの値を与えることによって画像のX軸を反転させるノーツです。
以下のように繋げてください。
処理の流れとしては、
・左右キーの入力を-1~1の値によって受け付ける
・その値が0以上であればtrueを返し、画像を反転する
といった感じですね。
再生してみましょう。
ちゃんと移動方向に対して画像が反転していますね。
これでPlayerの左右反転の設定は完了です。
#Playerの移動制限
今のままだとPlayerが画面外まで走って行けてしまうので、移動可能範囲の設定をしましょう。
まず、現在のPlayerのX値を取得して制限をかけるところからやっていきます。
先のグラフにTransform:Get Positionノーツを追加してください。
GetPositionノーツは自分のX,Y,Zからなる現在位置を取得するノーツです。
次にここからXの値だけを抽出します。
Vector2:Get Xノーツを追加してください。
GetXノーツはXの値を格納しておけるノーツです。名前のままです。
次は制限の部分です。
Mathf:Clamp(Value,Min,Max)ノーツ(検索して一番上のもの)を追加します。
ClampノーツはValueに渡された値をMin(最小値)~Max(最大値)内で制限します。
Playerが画面端まで行った時のX値が大体-8~8くらいなので、MinとMaxにもそのように設定します。
それぞれ作成出来たら以下のようにつないで下さい。
このままではまだClampで制御した値を作り出しただけにすぎません。
実際にこの値をPlayerの座標に反映させていきましょう。
Vector3:CreateVector3(X,Y,Z)ノーツを作成してください。
CreateVector3ノーツは新たにX,Y,Zからなる位置座標を作成するノーツです。
このXに制限したXの値を、Yに現在のPlayerのYの値を入れていきます。
次にVector2:Get Yノーツを追加します。
GetYノーツはGetXのY値バージョンですね。
次にTransform:SetPositionノーツを作成します。
SetPositionノーツはGetPositionノーツの逆で、与えた値を自分の現在位置に反映するノーツです。
これを以下のように繋げて、制限した値を現在のPlayerの現在位置に反映します。
グラフ全体を見ると以下のような感じです。入り組んできましたね…
ともかく再生してみましょう。
ちゃんと画面端で止まってくれるようになりました!
これでPlayerの移動制限は完了です。
今回のチュートリアルはここまでです。お疲れさまでした!
次回はアイテムの作成~Playerとの判定までをやっていきます。
【初心者向けチュートリアル】Boltを使用してUnityで簡単なゲームを作成する-5