유니티 2D 충돌 체크
OnCollisionEnter2D : 두 물체간 물리적 충돌을 체크하고 싶다.
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Ball")
{
GameObject.Find("Canvas").transform.Find("Over").gameObject.SetActive(true);
Time.timeScale = 0f;
}
}
OnTriggerEnter2D : 두 물체간 시각적 충돌을 체크하고 싶다.
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Red_Ball")
{
Rot_Check++;
}
}
OnCollisionEnter2D 을 사용할때는 뭔가 부딪쳐서 밀리거나, 튕기거나, 멈추거나, 등등 물리적 작용이 일어날때 사용한다.
예를 들면 당구공들의 충돌 후 속도의 변화를 줄때, 당구공이 다른 공과 부딪쳤는지 체크를 해야한다.
OnTriggerEnter2D 을 사용할때는 collider의 trigger가 체크되어있어야한다. trigger을 체크하면 시각적으로 이 게임오브젝트와의 충돌을 판별할 수 있다.
예를 들면 슈퍼마리오의 버섯아이템, 만약에 버섯에 trigger가 체크가 안되어있다면 슈퍼마리오가 버섯을 먹을 때(충돌할 때) 많이 아플것이다..ㅠ
2D 충돌 체크 함수는 여러개가 있는데 2D글자를 빼면 3D함수라고 합니다.
OnCollisionEnter2D | 오브젝트의 자식 콜라이더가 다른 콜라이더에 충돌했을 때 호출됩니다. (2D 물리만) |
OnCollisionExit2D | 오브젝트의 콜라이더와 다른 오브젝트의 콜라이더가 충돌에서 떨어진 순간에 호출됩니다. (2D 물리만) |
OnCollisionStay2D | 오브젝트의 콜라이더와 다른 오브젝트의 콜라이더가 충돌하고 있는 동안 매 프레임 계속 호출합니다.(2D 물리만) |
OnTriggerEnter2D | 오브젝트에 연결된 트리거 안에 다른 오브젝트가 들어갔을 때 호출됩니다. (2D 물리만) |
OnTriggerExit2D | 트리거 상태의 오브젝트 콜라이더와 다른 오브젝트의 콜라이더가 충돌에서 떨어진 순간에 호출됩니다. (2D 물리만) |
OnTriggerStay2D | 트리거 상태의 오브젝트의 콜라이더와 다른 오브젝트의 콜라이더가 충돌하고 있는 동안 매 프레임 계속 호출됩니다. (2D 물리만) |
출처 : https://docs.unity3d.com/kr/530/ScriptReference/Collider2D.html
'Unity > Tip' 카테고리의 다른 글
유니티 2D 씬 전환 (0) | 2018.08.19 |
---|---|
유니티 2D 회전 (0) | 2018.08.15 |
유니티 PlayerPrefs 사용법 (0) | 2018.08.11 |