今回は前回作成したエフェクトのPrefabを使用して、エフェクトを発生
同時にアイテムを消滅させる
エフェクト発生、アイテム消滅の条件は、アイテムに設定したコライダーにプレイヤー
が入ったかどうか
以下では、このあたりを説明していく
◆作業の流れ
①アイテムのPrefabにColliderを追加
InspectorでAdd Componentボダンを押しCapsule Colliderを追加する
Colliderの大きさは、Inspector上でRadius、Heightなどを変更して都合の良いように
調整
②アイテムのPrefabにスクリプトを追加
・InspectorでAdd Componentボダンを押しスクリプトを追加
・上記のようにUnityで用意されているコライダーに入ったかどうかを判定する
関数を使用 OnTriggerEnter
・先ほど設定したコライダーに、他のゲームオブジェクトが入ってくると
OnTriggerEnterが呼ばれて、入ってきたオブジェクトの情報がotherに格納される
・上記の場合は、Playerのタグが付いているオブジェクトかどうかを確認し
そうであれば処理を行っている
・コライダーに入ってきたオブジェクトがPlayerのタグのついたオブジェクトの
場合は、Instantiate関数により前回作成したエフェクトのPrefabを呼び出し
アイテムの位置に発生させている
〇Instantiateのパラメータ
1つ目 発生させるオブジェクトのPrefab
2つ目 発生させる位置
3つ目 発生時の向き
・さらにDestroy関数にてアイテムオブジェクト自体を削除している
➂前回作成したエフェクトのPrefabを関連付ける
②のスクリプトの「Public GameObject Effect」について
Publicで変数を定義することにより、インスペクター上で参照したいオブジェクト等の割り付けが可能になる
今回は前回作成したエフェクトのPrefabを割り付けたいのでPublicでゲーム
オブジェクトの変数を定義して、Inspector上で前回作成したDestroyEffectオブジェクト
を割り付けている 上記の図の赤枠の箇所
以上で、3回に分けて解説してきたアイテムの獲得~エフェクト発生は終了
〇重要な点
1 汎用的に発生させたいオブジェクトは1つ作ってPrefab化する
2 Prefab化したオブジェクトを発生させるにはInstantiate関数を使用
3 オブジェクト同士の当たり判定については、ColliderおよびOnTriggerEnter関数
を使用(OnTriggerExitなど他にもいろいろあるので用途に応じて使い分け)
4 参照したいPrefabの割り付けについては、スクリプト側でPublicで定義して
Inspectorで関連付ける
5 オブジェクトにアニメーションをつけるには、Animationを使用
6 サウンドを鳴らしたい場合はAudioSourceコンポーネントを追加
今回は以上