유튜브 35 - https://youtu.be/kycMLfZho_4
안녕하세요~ 오늘은 드디어 게임의 핵심이 되는 충돌 판정을 배워보도록 합니다~ 두둥~

오늘 배울 내용은 다음과 같습니다.
- 게임 오브젝트 만들고 콜라이더와 리지드바디 적용하기
- 충돌 판정 스크립트 적용하기 - OnCollisionEnter2D
- 충돌 Enter, Stay, Exit 살펴보기

먼저 충돌 감지를 위해 임이의 게임 오브젝트를 하나 만듭니다. 여기서는 임의로 캐릭터 이미지 하나를 추가하여 크게 만들고, 두 캐릭터가 충돌하는지 여부를 살펴보도록 하겠습니다. 이름은 Enemy로 해주도록 합니다. 공중에 떠 있으면 안되니, 리지드바디를 추가하고, 캐릭터가 서로 물리적인 충돌을 할 수 있도록 콜라이더를 추가해줍니다. Enemy의 Tag도 Enemy로 등록하여 설정합니다.

Tag를 등록하는 방법은 다음과 같이 Add Tag 를 클릭하고, +를 눌러 태그를 추가한뒤, 적용하면 됩니다. 잘 모르시겠으면 영상을 참고하세요~

이제 PlayerController 스크립트에 다음의 코드를 입력하고 테스트 합니다. ^^ 캐릭터가 충돌할 때마다 충돌이라는 텍스트가 출력됩니다. pring( ) 함수도 해당 내용을 출력해주는 역할을 합니다. OnCollisionExit2D 메서드를 이용하여 Enemy 태그를 가진 오브젝트와 충돌했는지를 확인해주는 것을 볼 수 있습니다. 생각보다 코드가 너무 간단하고 쉽지요^^
// 충돌 판정
void OnCollisionEnter2D(Collision2D other) {
if (other.collider.tag == "Enemy") {
print("충돌~");
}
}

OnCollisionExit2D를 좀더 살펴봅니다. 다음과 같이 코드를 작성해 봅니다. 테스트를 해보면 쉽게 이해할 수 있을 거에요. 그동안 어려운 고비도 있었지만.. 좀 재미있지 않나요^^
// 충돌이 시작되는 순간 호출
void OnCollisionEnter2D(Collision2D other) {
if (other.collider.tag == "Enemy") {
print("충돌 Enter~");
}
}
// 충돌이 되고 있을 때 매 프레임마다 호출
void OnCollisionStay2D(Collision2D other) {
if (other.collider.tag == "Enemy") {
print("충돌 Stay~");
}
}
// 충돌이 끝날 때 호출
void OnCollisionExit2D(Collision2D other) {
if (other.collider.tag == "Enemy") {
print("충돌 Exit~");
}
}

오늘도 엄청 수고하셨습니다. 35강까지 같이 따라온 분이면.. 엄청 대단한 인내심, 성실한 분일거에요. 이걸 하고 있는 저도 성실하구요 ㅎㅎㅎㅎ
우리 100일이 되면 정말 간단한 캐주얼 게임은 만들 수 있을 것 같습니다. 그럼.. 정모 한번 해도 좋을 듯 하네요^^ 코로나 잠잠해지면요^^

유튜브 35 - https://youtu.be/kycMLfZho_4
안녕하세요~ 오늘은 드디어 게임의 핵심이 되는 충돌 판정을 배워보도록 합니다~ 두둥~
오늘 배울 내용은 다음과 같습니다.
먼저 충돌 감지를 위해 임이의 게임 오브젝트를 하나 만듭니다. 여기서는 임의로 캐릭터 이미지 하나를 추가하여 크게 만들고, 두 캐릭터가 충돌하는지 여부를 살펴보도록 하겠습니다. 이름은 Enemy로 해주도록 합니다. 공중에 떠 있으면 안되니, 리지드바디를 추가하고, 캐릭터가 서로 물리적인 충돌을 할 수 있도록 콜라이더를 추가해줍니다. Enemy의 Tag도 Enemy로 등록하여 설정합니다.
Tag를 등록하는 방법은 다음과 같이 Add Tag 를 클릭하고, +를 눌러 태그를 추가한뒤, 적용하면 됩니다. 잘 모르시겠으면 영상을 참고하세요~
이제 PlayerController 스크립트에 다음의 코드를 입력하고 테스트 합니다. ^^ 캐릭터가 충돌할 때마다 충돌이라는 텍스트가 출력됩니다. pring( ) 함수도 해당 내용을 출력해주는 역할을 합니다. OnCollisionExit2D 메서드를 이용하여 Enemy 태그를 가진 오브젝트와 충돌했는지를 확인해주는 것을 볼 수 있습니다. 생각보다 코드가 너무 간단하고 쉽지요^^
// 충돌 판정
void OnCollisionEnter2D(Collision2D other) {
if (other.collider.tag == "Enemy") {
print("충돌~");
}
}
OnCollisionExit2D를 좀더 살펴봅니다. 다음과 같이 코드를 작성해 봅니다. 테스트를 해보면 쉽게 이해할 수 있을 거에요. 그동안 어려운 고비도 있었지만.. 좀 재미있지 않나요^^
// 충돌이 시작되는 순간 호출
void OnCollisionEnter2D(Collision2D other) {
if (other.collider.tag == "Enemy") {
print("충돌 Enter~");
}
}
// 충돌이 되고 있을 때 매 프레임마다 호출
void OnCollisionStay2D(Collision2D other) {
if (other.collider.tag == "Enemy") {
print("충돌 Stay~");
}
}
// 충돌이 끝날 때 호출
void OnCollisionExit2D(Collision2D other) {
if (other.collider.tag == "Enemy") {
print("충돌 Exit~");
}
}
오늘도 엄청 수고하셨습니다. 35강까지 같이 따라온 분이면.. 엄청 대단한 인내심, 성실한 분일거에요. 이걸 하고 있는 저도 성실하구요 ㅎㅎㅎㅎ
우리 100일이 되면 정말 간단한 캐주얼 게임은 만들 수 있을 것 같습니다. 그럼.. 정모 한번 해도 좋을 듯 하네요^^ 코로나 잠잠해지면요^^