유니티

[유니티] Collision VS Collider 차이

유니티 게임 개발 2024. 12. 25. 22:27
OnCollisionEnter2D 함수에서는
충돌한 대상의 오브젝트를 가져올 때
collision.gameObject
라고 써야하는 반면
 
 
OnTriggerEnter2D에서는
collision
라고 만 써도 된다.
 
이유가 뭘까?
 
 
 
 
void OnCollisionEnter2D(Collision2D(←매개변수) collision)
{
    collision.gameObject.CompareTag("Player");
}
 

우선 OnCollisionEnter2D 메서드에서 매개변수를 잘 보면 "Collision2D"라고 되어 있다.

이 매개변수는 "충돌한 정보"만을 가져오기 때문에, "충돌한 객체"를 가져오려면 gameObject를 사용해 가져와야 한다.

 

void OnTriggerEnter2D(Collider2D(←매개변수) collision)
{
    collision.CompareTag("Player");
}

 

반면에 OnTriggerEnter2D 메서드에서 매개변수 Collider2D는 트리거된 객체의 정보와 직접적으로 연관 되어있다. 때문에 collision만 사용해도 객체에 접근할 수 있다.