(Unity6)砲弾で周囲のオブジェクトを吹き飛ばす(AddExplosionForceの活用)

(サンプルコード)

using UnityEngine;

public class AddForce : MonoBehaviour
{
    public float radius = 10f;
    public float power = 300f;

    private void OnCollisionEnter(Collision collision)
    {
        if(collision.gameObject.CompareTag("Block"))
        {
            // 爆心地
            Vector3 center = transform.position;

            // 爆心地を中心として、指定した範囲内にあるオブジェクトのColliderを取得する。
            Collider[] colliders = Physics.OverlapSphere(center, radius);

            foreach(Collider hit in colliders)
            {
                Rigidbody rb = hit.GetComponent<Rigidbody>();

                if(rb)
                {
                    // 爆発力の発生(爆発の力 + 爆心地 + 影響の及ぶ範囲(半径))
                    rb.AddExplosionForce(power, center, 8.0f);
                }
            }
        }
    }
}

(実行結果)