플레이어 한테도 충돌 코드를 입힘

float health = 100.0f;

void TakeDamage(int value){
    health -= value;
    if(health <=0){
        Die();
    }
}
    
void Die(){
    Destroy(this.gameObject);
}

public void OnCollisionEnter2D(Collision2D coll){
    TakeDamage(10);
    Destroy(coll.gameObject);
}

그러나 이렇게 코드를 작성하고 총알을 발사하면 플레이어가 죽음

이는 Player가 적 오브젝트와만 충돌하는 것이 아닌 총알과도 충돌하기 때문에 일어나는 문제이다.

태그

인스펙터 창을 보면, 태그가 존재

image.png

image.png

image.png

Enemy 오브젝트에도 Enemy 태그를 부착

어떤 게임 오브젝트에서 태그를 참조해야 할 때에는 CompareTag() 메서드를 사용

public void OnCollisionEnter2D(Collision2D coll){
    if(coll.gameObject.CompareTag("Enemy")){
        TakeDamage(10);
        Destroy(coll.gameObject);
    }
}

레이어

총알이 부채꼴로 3갈래가 나가는데 총알끼리 충돌하는문제가 발생

image.png

빈 User Layer에 Bullet 입력

Bullet Layer에 연결

image.png

Bullet과 Bullet끼리 만나는 곳 체크 해제