유니티 2D 프로젝트
- 3D와 유의미한 차이가 있진 않음
- 이미지 파일을 스프라이트 타입으로 임포트
- 기본 생성 카메라가 직교 모드 사용
- 라이팅 설정 중 일부가 비활성화
- 씬 창이 2D 뷰로 보임
2D 컴포넌트
대부분 Vector2로 동작하거나 Vector3로 동작하되 z값을 무시함
오브젝트의 실제 위치값은 Vector3로 저장됨 (z값이 무의미할뿐)
Sprite
Sprite Sheet: 여러 이미지를 하나의 이미지 파일로 합친 것
Sprite mode
싱글 스프라이트 모드: 기본적으로 이 모드로 이미지를 가져옴. 하나의 스프라이트 에셋은 하나의 스프라이트를 표현
멀티플 스프라이트 모드: 하나의 스프라이트 에셋을 여러 개의 개별 스프라이트로 잘라 사용할 수 있음
멀티플 스프라이트 모드 변환 후 스프라이트 자르기
인스펙터 창의 Sprite Editor -> Type: Grid By Cell Size -> Slice -> Apply (Delete Existing: 이전 변경 내용 삭제)
2D Animation 제작
움직이는 배경
배경으로 쓸 사진 'background'가 있다고 하자. 플레이어가 제자리에서 달리고, 배경이 움직이게 하고 싶다.
배경을 움직이는 건 간단하다. transform.Translate를 통해 평행이동 시키면 된다. 그런데 우리는 배경을 '반복'해서 움직이게 하고 싶다.
이를 위해 background 사진을 두 개 이어붙여, 이전 사진이 넘어가면 곧이어 다음 사진이 스크롤링 되게 하면 된다. (크랭키 박스와 유사)
구현은 간단하다! 사진의 너비를 콜라이더를 통해 파악하고, 두 번째 사진의 Position의 x값을 그 너비만큼 설정해주면 바로 이어서 스크롤링 될 것이다. (스크롤링되는 스크립트는 따로 작성이 필요하다.)
또한 사진 재생이 완료되면 다른 사진의 뒤쪽으로 순간이동해야 한다. 사진의 너비를 w라고 하자.
사진의 위치의 x값이 -w가 되면, 곧바로 +w의 위치로 이동시키는 스크립트를 작성하면 해결된다.
이렇게 배경 반복 재생 구현이 완료되었다~!
출처: 레트로의 유니티 게임 프로그래밍 에센스(개정판)
'Unity > 개념' 카테고리의 다른 글
[Unity] 4. 공간과 움직임 (5) | 2024.09.11 |
---|---|
[Unity] 3. transform: 방향, 크기, 회전 (1) | 2024.03.29 |
[Unity] 2. C# (1) | 2023.12.30 |
[Unity] 1. 유니티 엔진 동작 원리 (0) | 2023.12.25 |