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

유니티5 독학하기 그88.5번째 걸음-다시금 트러블에 부딪친 패럴렉스 스크롤 part1

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

안녕하세요?


거의 3일동안 포스팅을 못 올렸는데, 그 이유는 방금전까지 패럴렉스 스크롤을 설정하는 것에 대해서 다시금 문제가 생겨서 이걸 해결하기 위해서 이래저래 손을 쓰다가 많이 늦어졌기 때문입니다. 그래서 이번 포스팅 부터는 당분간 88.5번째 걸음을 길게 걸으면서 이 문제를 해결하는 과정을 포스팅 하고자 합니다.



일단 시작은 호기있게 사막 배경을 위해서 손으로 그린 일러스트를 가지고 오도록 합니다.



그리고 나서 마지막으로 사막용 구름 스프라이트까지 가지고 오도록 합니다.



그리고 Parallax_BackGround2라는 새 게임 오브젝트를 만들고, 아래에 속하는 게임 오브젝트를 만들어 주도록 합니다.



그리고 선인장과 태양, 구름의 스프라이트는 쓸데없는 부분을 제거하고 다시금 가지고 오도록 합니다.



그런데 스프라이트 자체에 에러가 떴습니다. 이런 이유 때문에 제대로 패럴렉스 스크롤에 연속으로 이어지지 않는 태양이나 구름, 선인장이나 나무같은 오브젝트가 뜨지 않는가 해서 이를 해결하도록 했습니다. 이 에러는 4의 배수로 가로세로가 나오지 않아서 뜨는 에러기 때문에, 이를 보완하고자 합니다.



그래서 쓸데없는 부분이 많기는 하지만, 그래도 기존에 있던 큰 사이즈의 스프라이트를 재사용 하기로 했습니다.




그래도 태양이나 구름, 선인장이 제대로 나오지 않느 것을 볼 수 있었습니다. 여전히 에러는 현재 진행형이었습니다.



일단 이게 왜 이런가 봤더니, 스크린 앞쪽에 생성이 되어서 계속 플레이어 캐릭터의 방향과 같은 방향으로 X축의 좌표가 움직인다고 해야 할까요? 이런 식으로 텔레포트가 되면서 이래저래 카메라의 시야 안으로 들어오지 않는 다는 것을 볼 수 있었습니다.



그래서 일단 패럴렉스 스크롤 예제를 다시 보고자 합니다. 우선 가장 중요한 것이 태양이기 때문에, 여기서는 달이 어떤 원리로 되어 있는지 알아 보고자 합니다.



일단 달의 처음 좌표 위치입니다.



그리고 유니티5에서 게임을 플레이 시켰을 경우 뜨는 달의 모습입니다.



다음으로 극단적으로 X축의 좌표를 바꾸도록 해 보고자 합니다.




그러자 달이 아예 나오지 않는 것을 볼 수 있었습니다. 이것으로 태양의 경우에는 처음부터 카메라의 화면에 들어오도록 X축은 적어도 조절해야 한다는 것을 알 수 있었습니다.



그런데 이렇게 해도 상황이 나아지지 않아서, 일단 스크립트를 살표 보도록 했습니다. 이 스크립트 상에서는 우선 이전 시간에 했던 것처럼 -를 붙여 놓았고, 전체적인 스피드는 t라고 볼 수 있습니다.



그래서 Update()라는 함수를 찾아가서, 여기서는 위 스크린샷처럼 Translate라는 함수에 먼저 확인을 할 수 있었습니다.



뒤에 있는 Vector3를 향해서 게임 오브젝트가 움직인다는 것을 알 수 있습니다.



그래서 일단 위에 나오는 이 X축의 값을 마이너스로 바꾸도록 했습니다.



그러자 이번에는 태양의 X축 좌표가 엄청나게 커져 버렸는데, 처음에는 이게 코드의 에러 때문이라고 생각했습니다.




그래서 이번에는 지난번에 짜놓은 코드가 잘못된 것인가 해서, 한번 플러스로 바꾸어 보았습니다.



무언가 형언하기 힘든 에러가 나오는 것을 볼 수 있었습니다. 그래서 하는 수 없이 위에서 바꾸었는 부분은 도로 고치도록 했습니다.



그래서 obj.transform.Translate()안의 Vector3에서 x축의 값을 다시 -값으로 바꾸어 보았습니다.



그리고 에러가 뜨지 않도록 태양의 경우 위 스크린샷처럼 스피드 비율은 1로 만들어 주도록 하고, minX와 maxX의 값을 9999로 최대한으로 만들어 주도록 했습니다.



일단 위 스크린샷은 기존의 방식입니다. 이 방식에서는 태양이 같이 가기는 가는데, 일련의 배경은 -t가 아니라서, 어딘가 어색하다는 느낌이 들기도 합니다.



그래서 Update()함수 안에서 Vector3의 x축 값을 -로 바꾸어 준 다음에, 위 스크린샷처럼 멀리 떨어진 오브젝트 일 수록 스피드 비율을 더 올리도록 했습니다.



위 스크린샷처럼 이제 태양은 하늘에 가만히 있는 것처럼 보이며, 가장 멀리 있는 사막언덕이 그렇게 많이 움직이지 않고, 가장 가까이 있는 사막언덕이 가장 빨리 움직이는 것을 볼 수 있습니다. 이렇게 하는 것으로 어떻게 패럴렉스 스크롤의 첫번째 에러를 해결할 수 있었습니다. 그러나 이제 선인장을 어떻게 하는 문제가 남아 있었습니다.


반응형