TigerProject/Assets/Block/DestructibleBlock.cs
2026-01-26 18:08:38 +09:00

38 lines
1.1 KiB
C#

using UnityEngine;
public class DestructibleBlock : Entity
{
[SerializeField] private GameObject[] debrisPrefabs;
[SerializeField] private int debrisCount = 5;
[SerializeField] private float explosionForce = 5f;
public override void TakeDamage(int damage)
{
base.TakeDamage(damage);
}
private void OnDestroy()
{
SpawnDebris();
}
private void SpawnDebris()
{
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<Rigidbody2D>();
if (rb != null)
{
Vector2 dir = (randomPos - (Vector2)transform.position).normalized;
dir += Random.insideUnitCircle * 0.5f;
rb.AddForce(dir.normalized * explosionForce, ForceMode2D.Impulse);
}
Destroy(debris, 2f);
}
}
}