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

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

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

안녕하세요?


지난번 포스팅에서 태양이 계속해서 플레이어 캐릭터를 앞질러서 나아가는 현상이 있다고 말을 했는데, 이번에는 이 현상을 잡기 위해서 좌우충돌 시행착오를 해서, 그 결과를 여기 블로그에 올리고자 합니다.



역시 작업을 위해서 오늘도 FreeParallax.cs 스크립트에 들어가 봅니다.



그리고 나서 위 스크린샷을 보면, 원래는 float t는 Time.deltaTime이라고 해서 프레임 하나가 끝날 때 까지 걸린 시간에다가 플레이어 캐릭터의 스피드를 곱한 값으로 되어 있습니다. 이 값을 위 스크린샷처럼 그냥 플레이어 캐릭터의 스피드로 바꾸어만 봅니다.



그렇게 했더니 어찌된 셈인지, 하늘과 같은 배경을 빼고는 모두 오른쪽으로 바로 총알같이 날라가서 아예 사라져 버리는 것을 볼 수 있었습니다.



그래서 이번에는 위 스크린샷처럼 SpeedRatio가 쓰이는 곳 중에 x축으로 위 스크린샷처럼 움직이는 곳을 점 찍어서 움직여 보고자 합니다.




먼저 위 스크린샷처럼 플레이어 캐릭터의 속도를 가지고 와서, t*SpeedRatio가 플레이어 속도보다 빠를 경우에 기존에 -t*SpeedRatio라고 되어 있는 부분을 그냥 PlayerSpeed로 바꾸어 주도록 해 봅니다.



이렇게 했더니 작업이 전혀 진척이 없어서, 위 스크린샷처럼 딱 고정된 물체에 한해서-MinXPercent와 MaxXPercent의 값이 모두 9999인 경우에만 적용이 되도록 코드를 바꾸어 보았습니다. 그래도 결과는 신통치 않았습니다.



그런데 어이없게도 지금까지 결과가 신통치 않은 이유가 위 스크린샷처럼 주인공 캐릭터의 스피드와 반데 방향으로 가기 위해 -를 붙여아 한다는 것을 이제서야 알 수 있었습니다.



그래서 이번에는 유니티5에서 플레이 버튼을 누르고 한번 테스트를 한번 해 보았습니다.



이렇게 하는 것으로 어떻게 태양의 움직임이 사라지는 것은 확인할 수 있었습니다. 결국 Time.deltaTime*플레이어 스피드 * SpeedRatio의 값이 플레이어 스피드 보다 더 커버린 것이 문제라면 문제라고 할 수 있었습니다. 그런데 문제가 여기서 하나 생겼습니다. 바로 처음에 나올 때 태양이 점멸을 하는 듯한 것인데, 이것은 제가 의도한 효과가 아니기 때문에 좀 더 살펴 보아야 한다는 생각이 들었습니다.

반응형