본문 바로가기

유니티

유니티 랜덤 길 생성

러닝게임 같이 무한히 이동하는 게임을 만들고 싶어서 구현을 해봤습니다.

보통 2D 횡스크롤 같은 경우는 개념이 간단한 편이던데(배경의 좌표 끝에 도달하면 다시 원점으로 등), 이렇게 회전이 필요한 3D의 경우 어떻게 구현해야할지 생각이 들더라구요.

 

여러 고민을 해본 결과..

 

딱히 대단한 방식은 아니고

하나의 단위로 쪼갠 길 프리팹들을 인스턴스화 해서 오브젝트 풀에 비활성화 상태로 생성해놓고

(이 때 모든 오브젝트들의 좌표와 회전값은 0, 0, 0 그대로 생성)

 

Gen 버튼을 누르면

중복 없이 난수를 생성한 다음 -> 1, 3, 5, 2, 7, 4, 6

각 숫자에 해당되는 프리팹들을 길들이 서로 이어질 수 있게 좌표와 회전값들을 보정한다음

게임오브젝트들을 활성화하면 끝!

 

 

이제 길을 자동으로 랜덤하게 생성할 수 있으니

하나의 구간을 지날 때마다 생성된 프리팹들을 회수하고 다시 랜덤으로 재배치 한다음

다음 위치에 생성해주면 우리가 생각할 수 있는 러닝게임의 형태가 될 것 같네요.

 

코드랑 같이해서 좀 더 정리하고 싶은데

시간이..

 

(취미를 줄입시다)