大型のボス敵やオブジェクトを攻撃する場合、「攻撃の当たった場所」にエフェクトを発生させる方法
*『foreach』を活用する。
・C#スクリプトを作成し、名前を「DestroyObject」に変更(既に同じ名前がある場合には名前の最後に「2」をつける)
using UnityEngine; using System.Collections; public class DestroyObject : MonoBehaviour { public GameObject effectPrefab1; public GameObject effectPrefab2; public int objectHP; // 「OnTriggerEnter」ではなく「OnCollisionEnter」で書くのがポイント void OnCollisionEnter(Collision other){ if(other.gameObject.CompareTag("Shell")){ objectHP -= 1; if(objectHP > 0){ // ★衝突した位置情報を取得して、その位置にエフェクトを発生させる // (Vector3)は型変換の意味 foreach(ContactPoint contactPoint in other.contacts){ GameObject effect1 = Instantiate(effectPrefab1, (Vector3)contactPoint.point, Quaternion.identity) as GameObject; Destroy(effect1, 1.0f); Destroy(other.gameObject); } } else { foreach(ContactPoint contactPoint in other.contacts){ GameObject effect2 = Instantiate(effectPrefab2, (Vector3)contactPoint.point, Quaternion.identity) as GameObject; Destroy(effect2, 1.5f); Destroy(other.gameObject); Destroy(gameObject); } } } } }