Unity

OnCollisionEnter2D, OnTriggerEnter2D 등등

박도치 2023. 12. 5. 21:40

유니티에서는 게임 오브젝트 간에 상호작용을 감지하는데 사용하는 것들이 있다. 오늘은 그 종류에 대해 열거해보고 알아가는 시간을 갖도록하자.

 

보통은 메서드를 사용하고, Tag를 줘서 그 Tag를 가지고있는 물체와 충돌이 감지되었을 때 어떤 반응을 일으킬지 그리고 그 반응이 일어났을 때의 작업들을 메서드 내에 쓰면 된다.

 

Tag는 inspector창에 있으며 자신이 커스텀 하여 적용하면 되고, Collision2D 컴포넌트를 추가하여 충돌을 감지하게끔 한다.

 

아래부터는 충돌감지 메서드의 종류이다.

 

1. OnCollsionEnter2D(Collision collision)

  • 물리적 충돌이 발생했을 때 호출된다.
  • Collision2D 매개변수를 통해 충돌 정보를 얻을 수 있다.
void OnCollisionEnter2D(Collision2D collision) {
   // 보통은 if(gameobject.collision.CompareTag("나의 커스텀 태그")){}; 이런식으로 사용된다.
}

 

 

2. OnTriggerEnter2D(Collider2D other)

  • 트리거 영역에 다른 Collider2D가 진입했을 때 호출된다.
  • Collider2D 매개변수를 통해 트리거한 오브젝트에 대한 정보를 얻을 수 있다.
  • inspector창에 isTrigger를 체크하여 사용한다. 
void OnTriggerEnter2D(Collider2D other) {
    
}

 

 

3. OnCollisionStay2D(Collision2D collision)

  • 물리적인 충돌이 지속되고 있을 때 호출된다.
  • Collision2D 매개변수를 통해 충돌 정보를 얻을 수 있다.
void OnCollisionStay2D(Collision2D collision) {
    
}

 

 

4. OnTriggerStay2D(Collider2D other)

  • 트리거 영역에서 다른 Collider2D가 여전히 있는 경우에 호출된다.
  • Collider2D 매개변수를 통해 트리거한 오브젝트에 대한 정보를 얻을 수 있다.
void OnTriggerStay2D(Collider2D other) {
    
}

 

 

5. OnCollisionExit2D(Collision2D collision)

  • 물리적인 충돌이 끝났을 때 호출된다.
  • Collision2D 매개변수를 통해 정보를 얻을 수 있다.
void OnCollisionExit2D(Collision2D collision) {

}

 

 

6. OnTriggerExit2D(Collider2D other)

  • 트리거 영역에서 다른 Collider2D가 떠났을 때 호출된다..
  • Collider2D 매개변수를 통해 떠난 오브젝트에 대한 정보를 얻을 수 있다.
void OnTriggerExit2D(Collider2D other) {

}

 

 

 

물론 지금까지 사용해본 것은 OncollisionEnter2D 와 OnTriggerEnter2D 두가지지만, 기록해두고 기억안날때 와서 보면 요긴하게 사용할 수 있을거같다.

'Unity' 카테고리의 다른 글

[Unity] 캐릭터 스탯 만들기  (1) 2023.12.07
[유니티] 벽돌깨기 - 벽돌(몬스터) 풀링  (2) 2023.12.07
RayCast 에 대해서 (RayCastHit2D)  (1) 2023.12.04
[프로그래머스] 삼총사 C#  (0) 2023.12.01
[Unity] 벡터 및 계산  (0) 2023.11.29