상세 컨텐츠

본문 제목

유니티 똥 피하기 게임 만들기 네 번째

프로그래밍/유니티

by 개발자입니다 2020. 6. 27. 23:27

본문

728x90
반응형

오늘 포스팅은 졸라맨과 똥 오브젝트 간의 충돌처리를 하는 방법에 대해 다룬다.


오브젝트 간의 충돌처리는 오브젝트 안의 콜라이더로 충돌이 되었는지 확인한다.

게임 환경 설정 때 각 오브젝트 안에 콜라이더를 컴포넌트 하여주었으니 이번에는 어떻게 콜라이더를 확인하는지에 대하여 알아보겠다.


콜라이더는 대체로 Tag 를 이용하여 판별하는데 Tag를 이용하는 방법은 콜라이더가 씌어진 오브젝트의 인스펙터 창의 Tag 항목에 자신이 원하는 Tag의 이름을 설정하고, 스크립트를 통해 Tag의 이름이 맞으면 그에 따른 행동을 설정하면 된다.







다음과 같이 Tag를 설정 하였다면, PlayerCatch 라는 이름의 스크립트 하나를 만들어 졸라맨 오브젝트에 컴포넌트 하여준다.



위의 캡처 사진과 같이 Update함수 에는 간단하게 플레이어가 화면의 왼쪽 오른쪽으로 나가지 못하게 가두어 놓았고, 아래의   private void OnTriggerEnter2D(Collider2D collision) 함수가 지정된 태그를 찾아 자신이 지정한 태그가 맞다면 태그된 오브젝트를 삭제한다는 함수부분이다.




여기서 중요한 부분은 유니티 안에서 충돌을 판별하는 방법은 두가지가 있는데 한가지는 방금 사용한 OnTriggerEnter 트리거 충돌처리와, OnCollisionEnter 콜리전 충돌처리있고, 어느 방법을 사용하여도 두 객체중 하나는 Rigidbody 속성 태그를 가지고 있어야 한다.

각자 편한 방법을 이용하면 되는데, 트리거 충돌은 오브젝트를 통과하고, 콜리전 충돌은 오브젝트와 충돌 시 통과하지 않고 그자리에 머무른다라고 생각하면 쉽다.


트리거 충돌처리는 충돌하는 객체의 콜라이더 박스에 Is Trigger 항목에 체크가 켜져 있어야한다.

콜리전 충돌처리는 Rigidbody의 Kinematic 항목에 체크가 항상 꺼져 있어야한다.



트리거 충돌 처리의 Is Trigger 항목 체크


콜리전 충돌 처리의 Kinematic 체크 off, 




Rigidbody의 경우 움직이는 객체, 플레이어(졸라맨)에 컴포넌트 하는 것이 일반적.


다음과 같이 설정을 해주고 나서 실행을 해주면, 똥 콜라이더와 졸라맨 콜라이더가 맞다으면 사자리게 되는 것을 확인 할 수 있다.


여기까지 대부분의 똥 피하기 게임의 작업은 끝났다. 

다음 포스팅은 점수와 HP를 다루는 포스팅이며, 똥 피하기 게임의 마지막 포스팅이 될 것이다.

728x90
반응형

관련글 더보기

댓글 영역