【初心者向けチュートリアル】Boltを使用してUnityで簡単なゲームを作成する-5

こちらの記事では**アイテムの作成～Playerとの判定**までを行います。

#アイテムの作成

Playerの作成が一通り終わったので、次は落ちてくるアイテムを作っていきましょう！

Imageフォルダ内StrawberryをHierarchyにドラッグ&ドロップします。Scaleの値はそれぞれ0.3くらいにしましょう。
また、アイテムも当たり判定が必要になるためBoxCollider2Dをつけておきましょう。

そして、アイテムを落下させるため新しく必要になるのは**重力**です。
こちらも設定していきましょう。

StrawberryにRigidBody2DをAddComponentして、いったん再生してみましょう。
![BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education_ _DX11_ 2020_07_06 15_14_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/539da215-8b96-3830-e10a-668faff284ce.png)
ちゃんとStrawberryが落下し、Playerとの当たり判定も取れていますね。

これでアイテムの作成は完了です。

#Playerとの判定

次に、Playerと当たったらStrawberryが消える、という処理を実装していきたいと思います。

まずはPlayerの時と同じように、StrawberryにFlowMachineをAddComponentします。保存の際のグラフの名前は「ItemController」にしてください。保存出来たらItemController内のStartとUpdateノーツは消してしまって大丈夫です。その代わりにOnCollisionEnter2D(in Events/Physics 2D)というノーツを作成します。
![BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education_ _DX11_ 2020_07_06 15_26_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/46105911-56a3-bf63-5bfe-ea70b9b68a25.png)
OnCollisionEnter2Dノーツは、自身のColliderがほかのColliderと当たったときに呼び出されるノーツです。
次にComponent:Destroy(Obj)ノーツを作成します。
Destroyノーツはその名前の通り、Objに設定したオブジェクトを破棄します。
最後にSelfノーツを追加してください。
Selfノーツには自分自身のオブジェクトが格納されています。

すべて追加出来たら、以下のように繋いで下さい。
![BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education_ _DX11_ 2020_07_06 15_33_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/7745f88a-a1fa-b6a5-3c9c-9b8289344b0e.png)
再生してみましょう。
![ダウンロード.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/1d904783-18eb-274e-7be4-85a2fe4d8f9e.gif)
ちゃんとほかのオブジェクトと当たったら消えてますね。

今はアイテムがどのオブジェクトに当たっても同じ処理をしていますが、この後プレイヤーに当たったらスコアを加算し、床に当たったら何も行わず消す、という処理を実装するために**タグ**を設定していきます。
あらかじめタグをオブジェクトにつけておくと、判定の際にそれを見て処理を分岐させることができます。

早速設定していきましょう。
PlayerのInspectorからUntaggetになっているタグをPlayerにします。
![BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education_ _DX11_ 2020_07_06 15_52_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/93ee9bcf-2f46-5bf9-a64a-9cde13c2d317.png)
これでタグが設定できました。

実際にタグを見て処理を分岐させてみます。
グラフを以下のようにして下さい。
![BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education_ _DX11_ 2020_07_06 16_06_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/b5de87dd-6371-2639-f16b-09943f824c37.png)
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を選択してください。
![BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education_ _DX11_ 2020_07_06 16_08_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/5d28ca2e-c4eb-8336-f881-988adbddb5be.png)
ちゃんとオブジェクトごとの判定が取れているのがわかりました。

これでPlayerとの判定は完了です。

今回のチュートリアルはここまでです。お疲れさまでした！
次回は**スコアの実装～UIの表示**までをやっていきます。
[【初心者向けチュートリアル】Boltを使用してUnityで簡単なゲームを作成する-6](https://qiita.com/mma/private/d66383a0d098eb6b48dc)