Unity研究所<Unityによるゲーム開発、映像開発>

Unity初心者40代後半中年中間管理職おやじが綴るゲームで小遣い稼ぎできるようになるまでのブログ

②アイテムの獲得 その3 アイテムの消滅、エフェクトの発生

f:id:Harukichi:20190727140511g:plain

今回は前回作成したエフェクトのPrefabを使用して、エフェクトを発生

同時にアイテムを消滅させる

エフェクト発生、アイテム消滅の条件は、アイテムに設定したコライダーにプレイヤー

が入ったかどうか

 

以下では、このあたりを説明していく

 

◆作業の流れ

 ①アイテムのPrefabにColliderを追加

 ②アイテムのPrefabにスクリプトを追加

 ➂前回作成したエフェクトのPrefabを関連付ける

 

  

①アイテムのPrefabにColliderを追加

 f:id:Harukichi:20190728225241p:plain

 InspectorでAdd Componentボダンを押しCapsule Colliderを追加する

Colliderの大きさは、Inspector上でRadius、Heightなどを変更して都合の良いように

調整

 

②アイテムのPrefabにスクリプトを追加

 

f:id:Harukichi:20190728225252p:plain

  ・InspectorでAdd Componentボダンを押しスクリプトを追加

・上記のようにUnityで用意されているコライダーに入ったかどうかを判定する

 関数を使用  OnTriggerEnter

・先ほど設定したコライダーに、他のゲームオブジェクトが入ってくると

 OnTriggerEnterが呼ばれて、入ってきたオブジェクトの情報がotherに格納される

・上記の場合は、Playerのタグが付いているオブジェクトかどうかを確認し

 そうであれば処理を行っている

 

・コライダーに入ってきたオブジェクトがPlayerのタグのついたオブジェクトの

 場合は、Instantiate関数により前回作成したエフェクトのPrefabを呼び出し

 アイテムの位置に発生させている

   〇Instantiateのパラメータ

  1つ目 発生させるオブジェクトのPrefab

  2つ目 発生させる位置

  3つ目 発生時の向き

 

・さらにDestroy関数にてアイテムオブジェクト自体を削除している

 

➂前回作成したエフェクトのPrefabを関連付ける

f:id:Harukichi:20190728225306p:plain

 ②のスクリプトの「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コンポーネントを追加

 

今回は以上