using UnityEngine; public class DestructibleBlock : MonoBehaviour { [Header("ÆÄÆí È¿°ú ¼³Á¤")] [SerializeField] private GameObject[] debrisPrefabs; [SerializeField] private int debrisCount = 5; [SerializeField] private float explosionForce = 5f; private void OnDestroy() { if (!gameObject.scene.isLoaded) { return; } SpawnDebris(); } private void SpawnDebris() { if (debrisPrefabs == null || debrisPrefabs.Length == 0) { return; } for (int i = 0; i < debrisCount; i++) { // ·£´ýÇÑ ÆÄÆí ¼±Åà GameObject prefab = debrisPrefabs[Random.Range(0, debrisPrefabs.Length)]; // ºí·Ï À§Ä¡ ±Ùó¿¡¼­ »ý¼º Vector2 randomPos = (Vector2)transform.position + Random.insideUnitCircle * 0.5f; GameObject debris = Instantiate(prefab, randomPos, Quaternion.identity); // Æã! ÇÏ°í Æ¨°Ü³ª°¡´Â Èû Àû¿ë Rigidbody2D rb = debris.GetComponent(); if (rb != null) { Vector2 dir = (randomPos - (Vector2)transform.position).normalized; dir += Random.insideUnitCircle * 0.5f; // ¹æÇâ ·£´ý¼º Ãß°¡ rb.AddForce(dir.normalized * explosionForce, ForceMode2D.Impulse); } // ÆÄÆíÀº 2ÃÊ µÚ¿¡ ½º½º·Î »ç¶óÁü Destroy(debris, 2f); } } }