実現したいこと
Unityで2Dアクションゲームを作成しています。
プレイヤーが持つCircleCollider2Dに敵が衝突した際に、敵を消すといった挙動を実装しようとしています。
発生している問題・分からないこと
ゲームビューで確認すると、プレイヤーのCircleCollider2Dと敵のCircleCollider2Dは衝突しているのですが、敵が消えません。
該当のソースコード
EnemyController.cs
1【該当箇所抜粋】 2public class EnemyController : MonoBehaviour 3{ 4 [SerializeField] GameObject player; 5 CircleCollider2D playerCircol; 6 7 void Start() 8 { 9 this.playerCircol = this.player.GetComponent<CircleCollider2D>(); 10 } 11 12 private void OnCollisionEnter2D(Collision2D collision) 13 Debug.Log(playerCircol); 14 if (collision.collider == playerCircol) 15 { 16 Destroy(gameObject); 17 } 18} 19
試したこと・調べたこと
上記の詳細・結果
上記のDebug.Log(playerCircol)の結果はplayer(UnityEngine.CircleCollider2D)と表示されたので、CircleCollider2Dだけを取得できているはずです。
試しにDebug.Log(collision.collider)を確認すると、上記と同様の結果となりますが、そもそもif文が呼び出されていません。
ちなみにプレイヤー、敵ともにRigidbody2Dコンポーネントを与えています。
解決策が全く思いつかないので、お力添えいただければ幸いです。
補足
特になし
0 コメント