ただオブジェクトを消すだけでなく、ゲームの臨場感を出すためには、パーティクルが欠かせません。
オブジェクトを壊したときに、パーティクルを出現させてみましょう。
Cubeをクリックすれば、爆発エフェクトが一回だけ再生されます。
関連記事:
マインクラフトのようにクリックで壊す
クリックした位置にパーティクル発生
少しずれた位置にエフェクト発生
条件によってエフェクトのサイズを変える
発生させたパーティクルをn秒後に削除
エフェクト発生の後にテキスト表示
ゴールすれば花火を打ち上げる
爆発パーティクルを一回だけ発生させる
今回のUnityバージョンは、Unity2019.4.27 を使用しています。
パーティクルは、Procedural fire というフリーアセットをインポートさせていただきました。
インポートが終われば、Hovl Studioというフォルダが追加されています。
Cubeオブジェクトを作成します。
CubeDestroy.csを作成し、Cubeに追加します。
CubeDestroy.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeDestroy : MonoBehaviour { [SerializeField] GameObject explosionPrefab; void OnMouseDown() { Instantiate (explosionPrefab, transform.position, Quaternion.identity); Destroy(this.gameObject); } } |
プレハブデータは、Assets > Hovl Studio > Procedural fire > Prefabs > Explosion を使います。
Explosionのパーティクルをループさせないようにします。
Explosionを選択し、プレハブを開くをクリック。
Explosionの階層すべてに対して、ループのチェックを外します。
ヒエラルキーの←を押し、元のシーンビューに戻ります。
ExplosionPrefabのフィールドに、Explosionを入れます。
ゲームプレイして、Cubeをクリックしてみましょう。
Prefabの生成ではInstantiateを使用して、何を、どの位置に、どの向きで、という順に書きます。
マイクラのようにクリックで壊すようなシーンには、このスクリプトが活用できそうですね。
関連記事:
マインクラフトのようにクリックで壊す
クリックした位置にパーティクル発生
少しずれた位置にエフェクト発生
条件によってエフェクトのサイズを変える
発生させたパーティクルをn秒後に削除
エフェクト発生の後にテキスト表示
ゴールすれば花火を打ち上げる