
게임에서 충돌 영역을 코드에 적용하여, 어떤 객체가 다른 객체에 부딪혔을 때 특정 동작이 실행되도록 만들어 보겠습니다. 마지막에는 작동 가능한 전체 코드를 제공해 드릴 테니 함께 따라와 주세요.
게임에서 플레이어가 다른 객체와 부딪힐 때 이를 감지하여 원하는 동작을 실행하고 싶습니다. 예를 들어, 부딪혔을 때 콘솔에 메시지를 출력하거나, 점수를 증가시키거나, 효과음을 재생할 수 있겠죠.
새로운 기능을 추가할 때는 기존 스크립트에 코드를 덧붙이는 것보다 새로운 스크립트를 생성하는 것이 좋습니다. 이렇게 하면 코드 관리가 쉬워지고, 스크립트가 너무 길어지는 것을 방지할 수 있습니다.
Collision이라고 지정합니다.Collision 스크립트를 더블 클릭하여 열어주세요.기본적으로 생성되는 Start()와 Update() 함수는 이번 예제에서 필요하지 않으므로 삭제하겠습니다.
using UnityEngine;
public class Collision : MonoBehaviour
{
// Start()와 Update() 함수 삭제
}
Unity에는 충돌을 감지하는 내장 메서드가 있습니다. 우리는 2D 게임을 만들고 있으므로 OnCollisionEnter2D 메서드를 사용하겠습니다.
using UnityEngine;
public class Collision : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D other)
{
// 충돌 시 실행될 코드 작성
}
}
Collision2D other는 충돌한 객체에 대한 정보를 담고 있습니다. 이번 예제에서는 이 정보를 사용하지 않지만, 나중에 필요할 수 있으니 그대로 두겠습니다.충돌이 발생했을 때 콘솔에 "아야!"라는 메시지를 출력해 보겠습니다.
using UnityEngine;
public class Collision : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D other)
{
Debug.Log("아야!");
}
}
Debug.Log("아야!");는 콘솔에 메시지를 출력하는 함수입니다.이제 작성한 스크립트를 플레이어 객체에 연결해야 합니다.
Collision 스크립트를 검색하여 추가합니다.Collision 스크립트를 드래그하여 플레이어 객체에 넣어도 됩니다.
Rigidbody 2D를 검색하여 추가합니다.아래는 이번 예제에서 사용한 전체 코드입니다.
using UnityEngine;
public class Collision : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D other)
{
Debug.Log("아야!");
}
}
축하합니다! 이제 객체 간의 충돌을 감지하고, 충돌 시 특정 동작을 수행하는 방법을 배웠습니다. 이번 예제에서는 간단히 콘솔에 메시지를 출력했지만, 앞으로는 충돌 시 더 흥미로운 동작을 추가해 볼 수 있습니다.
예를 들어: