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

유니티5 독학하기 그 79번째 걸음-패럴랙스 스크롤 적용하기 part1

by 인터넷떠돌이 2018. 8. 31.
반응형

안녕하세요?


어제 포스팅을 못 올릴 정도로 패러랙스 스크롤에 대해서 한번 알아 본다고 이래저래 많은 시도를 했습니다만, 아직까지도 제대로 된 패럴랙스 스크롤이 나오지 못했습니다. 일단 시행착오를 겪었고, 그 내용을 이 포스팅에서 기록으로 남기고자 합니다.



먼저 기존에 있던 pixabay의 이미지로는 도저히 연속되어 이어붙이는 방법이 없었기에, 하는 수 없이 pixabay에서 백터 그래픽으로 있는 밤하늘 그림을 가지고 오도록 합니다.



그리고 Kenney.nl에서 적당해 보이는 그래픽 에셋을 다운로드 받도록 합니다.



일단 새로 만든 배경, 풀밭, 나무등을 가지고 오도록 합니다.



그리고 기존에 있던 배경화면 이미지를 렌더링 하고 있는 게임 오브젝트를 삭제하도록 합니다.



그리고 패러렉스 스크롤을 위한 새로운 게임 오브젝트를 생성 하도록 합니다.




그리고 오브젝트에 Free Parallax.cs라는 스크립트 컴포넌트를 추가해 주도록 합니다.



다음으로는 패러렉스 스크롤링의 재료가 되는 스프라이트의 갯수만큼 게임 오브젝트를 생성하도록 합니다.



각각의 자식 게임오브젝트에 Sprite Renderer 컴포넌트를 추가한 다음, 여기다가 각각의 스프라이트를 집어 넣도록 합니다.



그런데 어찌된 것인지 모르겠지만, 유니티5에서 플레이 버튼을 누르고 나니까, 위 스크린샷처럼 변해 버리는 것을 볼 수 있었습니다.



그래서 일단 밤하늘인 배경화면의 스프라이트가 있는 게임 오브젝트를 복사해서 하나 더 만들어 줍니다.




그리고 밤하늘인 배경화면은 Sorting Order를 -1로 설정했습니다.



다음으로는 먼 곳에 있는 풀밭 2개의 게임 오브젝트를 계층뷰에서 선택 하도록 합니다.



이번에는 너무 낮은 곳에 위치해 있었으니, scale항목의 Y항목을 2로 해서 길이를 2배 늘려 주도록 합니다.



이제서야 어느정도 뭐가 되어 가는 듯 합니다만, 유니티5의 플레이 버튼을 눌렀을 시에 여전히 화면이 제대로 잘 채워지지 않는 것을 볼 수 있었습니다.



일단 위 문제는 위에까지 하도록 하고, 다음의 문제가 발생했습니다. 바로 게임을 시작해서 주인공인 제이크가 앞으로 걸어나아가면, 배경이 움직이지 않는다는 것 입니다.




먼저 이 문제를 해결하기 위해서 PlayerController.cs항목으로 들어가도록 합니다.



그리고 PlayerSpeed()라는 public 형식의 메소드를 만들어 주도록 합니다.



그리고 FixedUpdate() 메소드에서 이 PlayerSpeed()메소드를 일정 시간마다 실행시키도록 합니다.



다음에는 FreeParallax.cs로 와서, 위 스크린샷처럼 Speed변수를 정의하도록 했지만.....



무엇이 잘못 되었는지 위 스크린샷과 같은 에러가 나고 말았습니다. 이 에러를 해결해야 하는데, 지금 당장 이 에러를 해결할 수는 없고 해서, 일단 포스팅을 여기까지 하는 것으로 마침닙니다. 아직도 패러렉스 스크롤을 적용하는 것이 잘 되지 않아서 이래저래 헤메고 있는 중입니다만, 그래도 될 수 있으면 유니티5 독학하기 79번째 걸음은 패럴렉스 스크롤 성공으로 마무리를 하고 싶습니다.

반응형