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

유니티5 독학하기 그 91.2번째 걸음-일단은 해결된 태양의 실종(?)

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

안녕하세요?


해결이 될 듯 하면서도 해결이 안되고 있는 태양이나 달과 같이 하늘에 가만히 떠 있어야 하는 물체에 대해서는 작업이 좀처럼 안되고 있는 중인데, 일단 300.5f의 거리에서 갑자기 패럴렉스 스크롤이 생성되는 상황에서는 어떻게 대처를 해서 해결은 했는데, 이게 또 다른 문제의 시작일 줄은 이 때 까지만 해도 짐작도 못하고 있었습니다. 일단 그 상상을 초월하는 일이 발생하게 된 것에 대한 첫 발자국을 포스팅 하고자 합니다.



먼저 FreeParallx.cs 스크립트를 찾아서 들어가 보도록 합니다.



위 코드가 바로 새로운 오브젝트가 패럴렉스 스크롤에서 생성되는 위치를 지정해 주는 코드인데, 이전에 만들어 둔 것처럼 더 빈번하게 선인장이나 구름이 나오게 하기 위해서 55% 감소가 되도록 만들어 준 것을 볼 수 있습니다.



일단 한번 유니티 스크립트API를 찾아서 힌트를 찾고자 합니다. 일단 여기서 중요한색심이 되는 ViewportToWorldPoint()라는 메소드에서 가장 오른쪽과 윗쪽이 1,1의 값을 지닌다는 것에서 일단 생각을 했습니다.



그리고 Vector3.one이 (1,1,1)의 좌표를 나타낸다는 것을 알 수 있었습니다. 그래서 여기서 생각을 하기를 이걸 반영해서 문제를 어떻게 해결할 수 있으리라 생각을 했습니다.




그리고 SetPosition()메소드가 어디서 쓰이는가 했더니, 아무 게임 오브젝트에서 쓰이지 않고 LineRenderer라고 해서 일정한 라인에다가 직접 그리지 않아도 프로그램에서 알아서 라인에다가 스프라이트를 배치해 주는 메소드가 있다고 합니다.



당연하다면 당연하게도 이 SetPosition()이라는 메소드는 당연히 이 라인이 어느 지점에서 생성이 되는 지를 지정하는 메소드라는 것을 알 수 있습니다.



그래서 직관적으로 x축의 값을 -4를 줄수 있으면 결과가 나아지지 않을까 하는 생각을 처음에 했습니다.



일단 근접하기는 많이 근접한 것을 볼 수 있었습니다.




그런데 이번에는 어떻게 수치를 조정해서 화면안에 태양이 등장 하기는 했는데, 이번에는 화면에서 태양이 플레이어 캐릭터를 앞질러서 나아가는 것을 볼 수 있었습니다.



그래서 혹시나 싶어서 Scale Height를 0.99에서 0.9로 줄이도록 했습니다.



이제서야 그런데로 그럴싸하게 태양이 앞으로 추월해서 화면 오른쪽으로 사라지는 것을 막을 수 있었습니다.



혹시나 믿어지지 않으실 분들이 계실 듯 해서 한번 GIF파일로 올려 보았습니다. 이렇게 태양이 추월해서 앞질러 가는 문제도 없앴고, 어떻게 화면상에서 띄우는 데도 성공하기는 했는데, 문제가 아직 남아 있습니다. 무엇이냐 하면, 바로 300.5f의 거리에서 패럴렉스 스크롤이 바뀌어서 태양이 나오게 하는 데 성공했는데, 이제 거리를 바꾸어서 적용해도 되는지를 테스트 하는 단계가 아직 남아 있습니다.

반응형