(1)準備
- 爆風で吹き飛ばしたいオブジェクトを作成
- このオブジェクトに「Rigidbody」を追加する(ポイント)
(2)スクリプトの作成
- 新規にC#スクリプトを作成
- 名前を「Blast」に変更
- 下記のコードを書いてチェック
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Blast : MonoBehaviour { public GameObject effectPrefab; public AudioClip sound; // 爆風の力 private float power = 10f; // 爆風が及ぶ範囲(半径) private float radius = 10f; private void OnCollisionEnter(Collision collision) { GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity); Destroy(effect, 0.5f); AudioSource.PlayClipAtPoint(sound, transform.position); // 着弾点を爆心地にする Vector3 explosionPos = collision.transform.position; // 爆心地から『指定した半径内』にあるオブジェクトのcolliderを取得する。 Collider[] colliders = Physics.OverlapSphere(explosionPos, radius); foreach (Collider hit in colliders) { Rigidbody rb = hit.GetComponent<Rigidbody>(); if (rb) { // 爆風の発生 rb.AddExplosionForce(power, collision.transform.position, radius, 1.0f, ForceMode.VelocityChange); } } } }
(3)設定
- 今回は、このスクリプトを発射する「砲弾サイド」に追加します。
- エフェクトとサウンドを設定(自由)
(4)再生&確認
- 設定が完了したらゲーム再生
- 砲弾がぶつかった瞬間、Rigidbodyを追加した周囲のオブジェクトも吹き飛べば成功です。