Priv's Blog
횡스크롤 게임에서 배경화면 반복 쉽게 처리하기 본문
1. 게임은 트릭
쿠키런을 비롯한 횡스크롤 달리기 게임들은 유독 '게임은 트릭'이라는 말이 자주 떠오르는 장르이다.
무한히 생성되는 오브젝트, 무릎 관절이 걱정되는 주인공 캐릭터, 끝도 없이 스크롤되며 멀미를 절로 유발하는 배경화면까지.
이 장르의 게임은 만들기도 쉽고, 플레이하기도 간단해서 튜토리얼에서 자주 사용되는 장르인 것 같다.
뭐, 아무튼. 이게 중요한 게 아니고.
지금 말하고자 하는 부분은 배경화면을 무한히 스크롤하게 만드는 부분에 대한 것이다.
그것도 Collider를 이용해서 말이지.
2. Collider의 사이즈를 가져올 수 있다.
유니티 3년 공부하면서 이건 첨 알았다...
GetComponent를 이용해 Collider를 가져온 뒤, .size를 붙여주면 된다.
repeatWidth = (GetComponent<BoxCollider>().size.x / 2);
위의 예시 코드처럼 작성하면, 사용자가 설정한 BoxCollider의 사이즈를 정확히 두 동강 내준다.
(코드를 보면 알겠지만 세로로 잘라준다.)
저게 왜 필요하냐? 그리고 왜 2를 넣어준 것이냐?
위의 사진을 보면, 배경화면 오브젝트가 2개의 동일한 이미지를 붙여놓은 형태를 띠고 있다.
위의 코드는 저 이미지를 기준으로 작성한 코드여서 2로 나눈 것.
만약 배경화면 오브젝트에 이미지 3개를 붙여둔 상태라면, 당연 3으로 나눠주면 된다.
기초적인(또는 노가다적인) 방법으로는 이미지 1개가 끝나는 지점을 손수 찾아내 그 좌표를 가지고 if문을 돌려야 한다.
그게 싫다면, 배경화면 오브젝트를 Prefab 형식으로 변환해 계속 생성해주던가...
(나는 처음에 이 방법을 사용했다.)
하지만 위의 예시 코드처럼 Collider의 사이즈를 나눠버리는 방식을 사용하면, 위의 두 가지 방법보다 더 간단하면서도 정확하게 배경화면을 반복시킬 수 있다.
유니티 Learn 튜토리얼 문서에서 이 방법 처음 알았을 때 나도 모르게 이마를 치고 있었지...
...역시 머리가 좋아야 해.
'Dev. Study Note > Unity' 카테고리의 다른 글
카메라를 자식 오브젝트로 만들어 기준점을 중심으로 시야 회전시키기 (0) | 2021.03.06 |
---|---|
Awake()와 Start() (0) | 2021.02.27 |
RGB 개발 일지 기록 8일차 (0) | 2020.08.03 |
RGB 개발 일지 기록 7일차 (0) | 2020.07.24 |
게임 오브젝트 랜덤 생성하기 (0) | 2020.07.20 |