(サンプルコード)
using UnityEngine;
public class DestroyShell : MonoBehaviour
{
public GameObject effectPrefab;
private float radius = 5f;
// ★追加
private PlayerHP playerHP;
private void OnCollisionEnter(Collision collision)
{
Vector3 hitPoint = transform.position;
Collider[] hitColliders = Physics.OverlapSphere(hitPoint, radius);
foreach(Collider c in hitColliders)
{
// ★追加
if(c.TryGetComponent(out playerHP)) // 範囲内のオブジェクトがPlayerHPコンポーネントを持っている場合
{
playerHP.Damage(); // Damage()メソッドを実行する。
}
}
Destroy(gameObject);
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 1.0f);
}
}
(実行結果)