본문 바로가기
유니티5 독학 & 게임 제작

유니티5 독학하기 그 91.8번째 걸음-패럴렉스 스크롤 단일 오브젝트 문제 part4

by 인터넷떠돌이 2018. 9. 28.
반응형

안녕하세요?


지난번 포스팅에서는 태양이 속도가 낮을 때 나타나지 않다가 무슨 속도위반을 단속하는 경찰이라도 되는 양 속도가 일정 속도(34이상)을 넘어가야 나오는 것을 볼 수 있었습니다. 이래서는 문제가 많다면 많다고 할 수 있으니, 이를 해결하도록 해 보는데, 그 때까지 가는 좌우충돌의 과정을 여기 포스팅에 담았습니다.



일단 태양이 왜 사라져 있는지 한번 플레이 도중에 일시정지를 누르고, 위 스크린샷처럼 씬뷰를 보니, 태양이 이상하게 뒤쪽에서 생성이 되어서 저러는 것을 볼 수 있었습니다.



그래서 Translate라는 함수를 조정해야 할 필요성이 있다고 판단해서 일단 보니까, 상대적인 위치를 줄 수 있다는 언급이 있는 것을 볼 수 있었습니다.



그래서 일단 Camera.main.transform을 넣어보는 시도를 해서, 카메라에 비치는 위치를 기준으로 어떻게 움직여 줄 것을 기대하고 작업을 했습니다.



하지만 기대와는 다르게 전혀 작동하지 않는 것을 볼 수 있었습니다.




그래서 다시 한번 이번에는 위 스크린샷처럼 Space.world를 넣는 것으로 한번 다른 결과가 나올 것을 기대해 보았습니다.



그래도 여전히 변화가 없는 것을 볼 수 있었습니다.



혹시 이게 10이라는 거리에서 발생해서 이런 것인가 싶어서, 한번 100이상일 때 사막 패럴렉스로 바뀌라고 코딩을 했더니 이제는 멀쩡하게 나오는 것을 볼 수 있었습니다.



그래서 일단 작업에 들어갔는데, 우선 if문을 34보다 크거나 같다가 아니라 t*SpeedRatio가 playerSpeed보다 더 클 경우 위쪽의 코드에 따라서 translate하도록 하고, 아닌 경우 아래의 코드를 따라서 translate하게 했습니다.



그래서 한번 시행착오법으로 위 스크린샷처럼 기존의 t*SpeedRatio에다가 35라는 값을 더해주는 것으로 translate값을 조정하도록 했습니다.



위 동영상을 보시면 알 수 있겠지만, 이제 점멸하는 문제도 해결했고, 태양이 앞으로 플레이어를 앞 질러서 가는 것도 해결할 수 있었습니다.



그래서 혹시나 싶어서 다양한 조건에서 한번 테스트를 하기 위해서 GameManager.cs를 찾아갔습니다.



이상하게도 10이라고 극히 짧은 거리에서 사막으로 바로 바뀌었는데도 제대로 태양이 위치를 하는 것을 볼 수 있었습니다.




그래서 한번 1000이라는 비교적 긴 거리에서도 제대로 작동을 하는 지를 한번 살펴 보았습니다.



일단 1000이라는 거리를 넘어서 태양이 제대로 생성이 되었고, 위치도 이탈하지 않는 것을 볼 수 있었습니다. 다만 여기서 사용된 35라는 숫자는 어디까지나 임의로 맞추어진 것이라서, 뭐랄까요? 목표로 했던 프레임이 60이 아니라고 하면, 상당히 문제를 유발할 소지가 있다는 생각도 듭니다.



그리고 마지막으로 계속 플레이어 캐릭터가 가다가 위 스크린샷처럼 바닥이 끝나는 것을 볼 수 있는데, 이건 어디까지나 플레이어 캐릭터가 공중으로 너무 높이 튀어 올라서 화면 밖으로 사라진 다음에 나오는 것으로 보아서, 하늘에 보이지 않는 투명한 천장을 만들어 주면 이 문제를 해결할 수 있으리라 생각이 듭니다.

반응형