Help us understand the problem. What is going on with this article?

【初心者向けチュートリアル】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
ちゃんと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
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
再生してみましょう。
ダウンロード.gif
ちゃんとほかのオブジェクトと当たったら消えてますね。

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

早速設定していきましょう。
PlayerのInspectorからUntaggetになっているタグをPlayerにします。
BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education_ _DX11_ 2020_07_06 15_52_13.png
これでタグが設定できました。

実際にタグを見て処理を分岐させてみます。
グラフを以下のようにして下さい。
BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education_ _DX11_ 2020_07_06 16_06_21.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
ちゃんとオブジェクトごとの判定が取れているのがわかりました。

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

今回のチュートリアルはここまでです。お疲れさまでした!
次回はスコアの実装~UIの表示までをやっていきます。
【初心者向けチュートリアル】Boltを使用してUnityで簡単なゲームを作成する-6

mma
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away