(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を追加した周囲のオブジェクトも吹き飛べば成功です。
