こちらの記事ではアイテムの作成~Playerとの判定までを行います。
#アイテムの作成
Playerの作成が一通り終わったので、次は落ちてくるアイテムを作っていきましょう!
Imageフォルダ内StrawberryをHierarchyにドラッグ&ドロップします。Scaleの値はそれぞれ0.3くらいにしましょう。
また、アイテムも当たり判定が必要になるためBoxCollider2Dをつけておきましょう。
そして、アイテムを落下させるため新しく必要になるのは重力です。
こちらも設定していきましょう。
StrawberryにRigidBody2DをAddComponentして、いったん再生してみましょう。
ちゃんとStrawberryが落下し、Playerとの当たり判定も取れていますね。
これでアイテムの作成は完了です。
#Playerとの判定
次に、Playerと当たったらStrawberryが消える、という処理を実装していきたいと思います。
まずはPlayerの時と同じように、StrawberryにFlowMachineをAddComponentします。保存の際のグラフの名前は「ItemController」にしてください。保存出来たらItemController内のStartとUpdateノーツは消してしまって大丈夫です。その代わりにOnCollisionEnter2D(in Events/Physics 2D)というノーツを作成します。
OnCollisionEnter2Dノーツは、自身のColliderがほかのColliderと当たったときに呼び出されるノーツです。
次にComponent:Destroy(Obj)ノーツを作成します。
Destroyノーツはその名前の通り、Objに設定したオブジェクトを破棄します。
最後にSelfノーツを追加してください。
Selfノーツには自分自身のオブジェクトが格納されています。
すべて追加出来たら、以下のように繋いで下さい。
再生してみましょう。
ちゃんとほかのオブジェクトと当たったら消えてますね。
今はアイテムがどのオブジェクトに当たっても同じ処理をしていますが、この後プレイヤーに当たったらスコアを加算し、床に当たったら何も行わず消す、という処理を実装するためにタグを設定していきます。
あらかじめタグをオブジェクトにつけておくと、判定の際にそれを見て処理を分岐させることができます。
早速設定していきましょう。
PlayerのInspectorからUntaggetになっているタグをPlayerにします。
これでタグが設定できました。
実際にタグを見て処理を分岐させてみます。
グラフを以下のようにして下さい。
OnCollisionEnter2DのColliderには、当たったオブジェクトの情報が入っています。
Game Object:Compare Tag(tag)ノーツは、与えられたオブジェクトに設定した名前のタグが付いているかどうかTrueかFalseで返すノーツです。Tagには「Player」と入力します。
Branch(in Control)ノーツは与えられたTrueかFalseの値を見て処理を分岐させるノーツです。ExcelでいうIF関数みたいな感じですね。Trueのほうには「プレイヤーに当たった」というメッセージを設定したDebugLogを、Falseのほうには「床に当たった」というメッセージを設定したDebugLogを置いて再生してみましょう。
Stringノーツは前と同じようにString Literalを選択してください。
ちゃんとオブジェクトごとの判定が取れているのがわかりました。
これでPlayerとの判定は完了です。
今回のチュートリアルはここまでです。お疲れさまでした!
次回はスコアの実装~UIの表示までをやっていきます。
【初心者向けチュートリアル】Boltを使用してUnityで簡単なゲームを作成する-6