유니티에서는 게임 오브젝트 간에 상호작용을 감지하는데 사용하는 것들이 있다. 오늘은 그 종류에 대해 열거해보고 알아가는 시간을 갖도록하자.
보통은 메서드를 사용하고, 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 |