주녘공부일지

[ShootingGame] 7. 원근감있는 무한 배경 만들기 + 페럴렉스, 스크롤링 본문

GameEngine/Unity - Lecture

[ShootingGame] 7. 원근감있는 무한 배경 만들기 + 페럴렉스, 스크롤링

주녘 2022. 1. 31. 01:25
728x90

 

 

Scripts.zip
0.01MB

 

 

0. 준비하기

- 카메라는 그대로, 배경이 아래로 움직여서 플레이어가 위로 움직이는 것처럼 느껴지게 만듬

- 카메라에서 벗어난 배경은 다시 위쪽으로 붙여서 재활용하여 사용할 예정 ( 1. 스크롤링 )

- Back Group Top, Middle, Bottom 으로 나눠 Parallax 기법을 사용할 예정 ( 2. 패럴렉스 )

- Back Group Botton, Middle, Top 에 스크립트 추가 ( class Background )

 

+ 이미지는 위에서 아래로 움직일 예정

 

 

1. Scrooling 기법

Main Camera / class Background

- Camera View 높이 = Size x2 // veiwHeight

- 기본 셋팅 (시작 셋팅) : startIndex = 2, endIndex = 0 

- sprites[0] : 가장 밑에 있는 스프라이트

 

class Background - Update()문에서 실행될 두 함수

 

Move() : tranform을 이용한 이동 구현

 

Scrooling() : 카메라에서 벗어난 배경은 다시 위쪽으로 올려서 재사용

#. Sprite ReUse

- 가장 밑에 있는 스프라이트의 월드 좌표가 카메라 크기만큼 내려가 있다면 스프라이트가 카메라를 벗어난 상태가 되므로 로직을 실행 (if문)

- 가장 위에있는 backSpritePos과 밑에있는 frontSpritePos를 지역 좌표로 가져와서 저장한 뒤 맨 아래에 있는 인덱스를 맨 위에있는 스프라이트 이미지의 위로 이동시킴

#. Cursor Index Change

- 씬에서의 스프라이트 이미지 순서가 변했으므로 맨 위와 맨 아래를 재조정

 ( 배열의 범위를 벗어나지 않도록 삼항연산자로 지정 )

 

배경 스크롤링은 카메라 밖에서 이루어지는 작업

 

 + 이미지들을 가지고 있는 부모 오브젝트는 계속 이동 중이므로, 지역 좌표(localPosition) 사용

https://godgjwnsgur7.tistory.com/17

 

local과 global ( position과 localPosition )

position ( world position ) - 절대적 - 월드의 원점을 기준으로 설정 localPosition ( local position ) - 상대적 - 부모의 좌표를 기준으로 설정 - 만약 부모가 존재하지 않으면 월드의 원점을 기준으로 설정 (..

godgjwnsgur7.tistory.com

 

2. Parallax 기법 : 거리에 따른 상대적 속도를 활용한 기술로 플랫포머에서도 많이 사용

Speed를 1, 2, 4 로 설정하여, 원근감을 느껴지도록 셋팅 ( 1인칭 시점 기준 먼 물체는 느리게 변화 )

- 이를 위해서 Back Group 을 Top, Middle, Bottom으로 나누어 생성한 것

 

 

https://github.com/godgjwnsgur7/ShootingGame

 

GitHub - godgjwnsgur7/ShootingGame

Contribute to godgjwnsgur7/ShootingGame development by creating an account on GitHub.

github.com

 

강의 출처

https://www.youtube.com/watch?v=KUQAULcpYZU&list=PLO-mt5Iu5TeYtWvM9eN-xnwRbyUAMWd3b&index=7 

 

728x90