Unityで2Dゲームのコンポーネントとイベントトリガーを設定【2Dゲーム作成.03】

初めてのUnityでゲーム作成。第3回目の今回はマト(オブジェクト)をクリックしたら消える設定をしていきます。第1回目の記事は下記から。

2D物理コンポーネント(サークルコライダー)の追加

現状だと「マトが動くように設定」しただけなので、ここから「マトの当たり範囲を設定して、マト(オブジェクト)をクリックしたら消える」設定を追加です。

マトの範囲設定(2Dサークルコライダー)

マトを選択して「インスペクター」内にある「コンポーネント追加」を選びます。その中から「2D物理」の中にある「2D サークルコライダー」を選択。

これがマトの範囲になるやつですね。

画面内に丸が判定枠ですね。いい感じになるように追加した2Dサークルコライダーの「オフセット」と「半径」を設定していきます。

オブジェクトクリック判定スクリプト追加

次にこのマト(オブジェクト)をクリックしたときの動作を作成です。前回作成したEnemy.csのStart()関数の下に追加します。

23-25行目ですね。下記の部分を追加です。とりあえず「onClickEnemy」としていますが、好きな名前で大丈夫です。オブジェクトを消すっていうものですね。

public void onClickEnemy()
{
    Destroy(this.gameObject);
}

ちなみに下記のようにしてもOK。

public void onEnemyClick() => Destroy(this.gameObject);

イベントトリガーの追加(マウスクリックで消去)

次に「クリックしたらオブジェクトが消える」という動作を設定していきます。アタッチするみたいな言い方でいいのかな。

マトとなるオブジェクトのインスペクター。コンポーネントを追加から「イベント」->「イベントトリガー」を追加。

追加したイベントトリガー(Event Trigger)にマウスクリックしたときの動作「Pointer Click」を追加します。

そこに先ほど作成した「オブジェクトが消える」onClickEnemyを追加。

これでとりあえず「マトをクリックしたら、オブジェクトが消える関数が呼び出されてマトが消えるはず」ってことで動かしてみる。

が・・ダメ。反応しないですなー。調べてみたところ、「キーボード、マウス、タッチやカスタムの入力に基づいて、アプリケーション内のオブジェクトにイベントを送信」するにはEventSystemを追加する必要があるみたい。ってことで追加。

これで動かしてみると、無事動きました。これは対象オブジェクトを削除しているのですが、これ以外にも実装方法があると思うし、この方法が最適とはもちろん思いません。ま、とりあえず動きました。ってことで次回はマトを増やしたり、色々と調整してみようかな。

タイトルとURLをコピーしました