
Unity에서 트리거와 OnTriggerEnter 사용하기: 상세 가이드
이번 가이드에서는 Unity에서 트리거(Trigger)와 OnTriggerEnter2D 메소드를 사용하는 방법을 자세히 알아보겠습니다. 이 과정을 통해 플레이어가 특정 영역을 통과할 때 이를 감지하고, 콘솔에 메시지를 출력하는 기능을 구현해볼 것입니다.

첫 번째 단계는 트리거로 사용할 게임 오브젝트를 추가하는 것입니다.
Hierarchy 창에서 마우스 우클릭합니다.
[2D Object] > [Physics] > [Square]를 선택하여 사각형 오브젝트를 생성합니다.
Scene 뷰에서 새로 생성된 사각형 오브젝트를 선택하고, 이동 툴을 사용하여 원하는 위치로 옮깁니다.
필요에 따라 Scale 값을 조절하여 사각형의 크기를 변경합니다.

오브젝트의 색상을 변경하여 시각적으로 구분하기 쉽게 만들어봅시다.

플레이어와의 상호작용을 위해 콜라이더를 추가하고, 이를 트리거로 설정해야 합니다.

플레이어가 트리거 오브젝트 위에 렌더링되도록 레이어 순서를 조정합니다.

사각형 오브젝트의 Sprite Renderer 컴포넌트에서 Order in Layer 값을 확인합니다.
플레이어 오브젝트를 선택하고, Sprite Renderer 컴포넌트에서 Order in Layer 값을 10으로 설정합니다.
트리거 이벤트를 감지하고, 콘솔에 메시지를 출력하는 스크립트를 작성하겠습니다.
Collision 클래스 내부에 아래의 메소드를 추가합니다:void OnTriggerEnter2D(Collider2D other)
{
Debug.Log("방금 뭐야?!");
}
OnTriggerEnter2D는 오브젝트가 트리거 콜라이더에 진입할 때 호출되는 메소드입니다.Debug.Log를 사용하여 콘솔에 메시지를 출력합니다.Collision.cs 스크립트의 전체 코드는 다음과 같습니다:
using UnityEngine;
public class Collision : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
Debug.Log("아야!");
}
void OnTriggerEnter2D(Collider2D other)
{
Debug.Log("방금 뭐야?!");
}
}
OnCollisionEnter2D 메소드는 물리적인 충돌이 발생할 때 호출됩니다.OnTriggerEnter2D 메소드는 트리거 콜라이더를 통과할 때 호출됩니다.Console 창을 열어둡니다.
Play 버튼을 클릭하여 게임을 실행합니다.
플레이어를 조작하여 핑크색 사각형(트리거 영역)을 통과합니다.
Console 창에서 "방금 뭐야?!"라는 메시지가 출력되는지 확인합니다.
트리거 오브젝트를 플레이어에게 보이지 않게 숨길 수 있습니다.
사각형 오브젝트를 선택합니다.
Inspector 창에서 Sprite Renderer 컴포넌트의 Enabled 체크박스를 해제합니다.
게임을 다시 실행하고, 플레이어를 트리거 영역이 있던 위치로 이동합니다.
Console 창에서 메시지가 출력되는지 확인합니다.
플레이어가 트리거 영역에서 벗어날 때를 감지하려면 OnTriggerExit2D 메소드를 추가할 수 있습니다.
void OnTriggerExit2D(Collider2D other)
{
Debug.Log("어디 가는 거야?");
}
이 메소드를 Collision 클래스에 추가하면, 플레이어가 트리거 영역을 떠날 때 콘솔에 "어디 가는 거야?"라는 메시지가 출력됩니다.
전체 코드 업데이트:
using UnityEngine;
public class Collision : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
Debug.Log("아야!");
}
void OnTriggerEnter2D(Collider2D other)
{
Debug.Log("방금 뭐야?!");
}
void OnTriggerExit2D(Collider2D other)
{
Debug.Log("어디 가는 거야?");
}
}
트리거와 콜라이더는 게임 개발에서 다양한 용도로 사용됩니다.
이번 가이드를 통해 Unity에서 트리거와 OnTriggerEnter2D 메소드를 사용하는 방법을 자세히 알아보았습니다. 이를 통해 플레이어의 상호작용을 감지하고, 게임 내 다양한 이벤트를 구현할 수 있습니다.
요약하면:
OnTriggerEnter2D와 OnTriggerExit2D 메소드를 사용하여 트리거 진입 및 이탈을 감지합니다.Debug.Log를 활용하여 개발 중에 이벤트 발생을 확인합니다.이러한 기법들은 게임 개발의 기본적인 요소이며, 이를 활용하여 더욱 풍부하고 상호작용적인 게임을 만들 수 있습니다.
다음 단계:
전체 실습 코드
아래는 이번 가이드에서 작성한 Collision.cs 스크립트의 전체 코드입니다.
using UnityEngine;
public class Collision : MonoBehaviour
{
// 플레이어가 물리적인 충돌을 할 때 호출됩니다.
void OnCollisionEnter2D(Collision2D collision)
{
Debug.Log("아야!");
}
// 플레이어가 트리거 영역에 진입할 때 호출됩니다.
void OnTriggerEnter2D(Collider2D other)
{
Debug.Log("방금 뭐야?!");
}
// 플레이어가 트리거 영역에서 벗어날 때 호출됩니다.
void OnTriggerExit2D(Collider2D other)
{
Debug.Log("어디 가는 거야?");
}
}
축하합니다! 이제 Unity에서 트리거와 콜라이더를 활용하여 다양한 게임 메커니즘을 구현할 수 있게 되었습니다. 계속해서 실습하고 응용하여 자신만의 독특한 게임을 만들어보세요.