유니티 ) h8man님의 pseudo 3d game에 장애물 연타로 나오게 하기.
이전에 뜯어봤던 프로젝트에서 그때는 단순히 장애물만을 추가해 봤었는데,
오늘은 아래 사진처럼 일정한 간격이 있는 상태로 장애물을 연속으로 그려지게 만들어 봤다.
기존에 TrackModifier 클래스에는 frequency변수가 있는데 이 변수가 현재 장애물이나, 기타 트랙에 나오는 모든 오브젝트들의 간격을 책임지고 있다.
나는 여기서 장애물이 이 일정한 간격을 유지한 채로 연속으로 나오게 하는 것을 구현하고 싶었다.
처음에는 코드에서 건드리지 말고 유니티에서 TrackObject를 추가해서 frequency로 차이를 둬서 연속으로 보이는 느낌이 나게 해 볼까 하다가 은근히 노가다일 것 같단 생각을 했다.
예전에는 귀찮아도 코드로 짜는 게 더 싫어서 노가다를 해봤겠지만 요즘엔 안되면 말지란 생각으로 그냥 코드를 건드려본다. 그런 걸 보면 예전보다는 코드랑 사이가 더 좋아졌는지도?
일단 내가 처음 생각했던 건 그냥 frequency 변수를 하나 더 추가하자였다.
연속으로 나오게 하고 싶은 장애물의 개수를 지정해 줄 변수로 groupSize로 정해주고, 그룹 내 장애물 간격을 정해줄 변수로 innerFrequency를 만들어 줬다.
생각보다 쉽게 빠르게 작업이 완료되었다. 아래 코드가 내가 만들어 둔 전체 함수 코드이다.
나중에 또 다른 곳에서 재사용하게 될 수도 있으니 groupSize, innerFrequency 변수를 매개변수로 빼서 관리해줄까도 싶었지만 필요하면 그때 바꿔주기로 하고, 지금은 매개변수로 너무 많은 애들이 들어가 있어서 추가해 주면 가독성이 너무 떨어질 것 같아 그냥 저대로 두었다.
m.label에 따라 트랙에 연속으로 그룹지게 나오게 하고 싶은 장애물이 있을 때 아래 AssignTrackGroupPosition함수를 불러와 사용해 주면 된다.