52 lines
1.4 KiB
C#
52 lines
1.4 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
public class DestructibleBlock : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
[Header("<22><><EFBFBD><EFBFBD> ȿ<><C8BF> <20><><EFBFBD><EFBFBD>")]
|
|||
|
|
[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++)
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
GameObject prefab = debrisPrefabs[Random.Range(0, debrisPrefabs.Length)];
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20><>ġ <20><>ó<EFBFBD><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Vector2 randomPos = (Vector2)transform.position + Random.insideUnitCircle * 0.5f;
|
|||
|
|
GameObject debris = Instantiate(prefab, randomPos, Quaternion.identity);
|
|||
|
|
|
|||
|
|
// <20><>! <20>ϰ<EFBFBD> ƨ<>ܳ<EFBFBD><DCB3><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Rigidbody2D rb = debris.GetComponent<Rigidbody2D>();
|
|||
|
|
if (rb != null)
|
|||
|
|
{
|
|||
|
|
Vector2 dir = (randomPos - (Vector2)transform.position).normalized;
|
|||
|
|
dir += Random.insideUnitCircle * 0.5f; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>
|
|||
|
|
rb.AddForce(dir.normalized * explosionForce, ForceMode2D.Impulse);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32> <20>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Destroy(debris, 2f);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|