정렬 레이어
스프라이트 렌더러 컴포넌트가 그리는 그래픽의 앞뒤 정렬은 트랜스폼 컴포넌트의 위치값과는 상관이 없다.
2D 게임 오브젝트가 그려지는 순서는 Sprite Renderer 컴포넌트의 Sorting Layer가 결정한다.정렬 레이어 추가하기
Sprite Renderer 컴포넌트의 Sorting Layer->Default 클릭->Add Sorting Layer... 클릭
Tags&Layers 창에서 Sorting Layers 리스트의 +버튼 클릭해서 Layer 추가해주기
이때 가장 아래쪽 Layer가 가장 앞쪽에 그려진다 !
이렇게 만든 Layer들을 각 해당 게임오브젝트들에 아래와 같이 할당해주면 된다.
*Awake() 메서드 : Start() 메서드처럼 초기 1회 자동 실행되는 유니티 이벤트 메서드, Start() 메서드보다 실행시점이 한 프레임 더 빠르다.
반복되는 배경과 발판
1) 게임 오브젝트를 계속 왼쪽으로 이동시키기 (: transform.Translate() 메서드 이용 )
ScrollingObject.cs
2) 왼쪽 화면 밖으로 게임 오브젝트가 벗어났을 경우를 x축 위치값으로 감지
3) 해당 게임오브젝트의 width * 2 위치로 이동BackgroundLoop.cs
-> 게임 오브젝트의 x축 위치가 -width 가 되는 순간, +width 로 위치가 변경되어 배경(/발판) 스크롤링이 무한 반복된다.
*Canvas : 캔버스는 모든 UI 요소를 잡아주는 루트 게임 오브젝트
게임UI
Constant Pixel Size (고정 픽셀 크기)
: 캔버스 크기가 변해도 배치된 UI 요소의 크기는 변하지 않는다.
Scale With Screen Size (화면 크기에 따라 스케일)
: 다양한 크기와 비율의 화면에서도 UI의 크기와 배치를 일정하게 유지하고 싶을 때 ,
실행 화면이 기준 화면보다 크거나 작을 때는 자동으로 확대/축소
작은 픽셀로 그려진 최종 화면을 강제로 잡아 늘리는 방식이 아니기 때문에 이미지가 깨지는 현상은 걱정하지 않아도 된다.방향 매치
'Scale With Screen Size' 모드는 Canvas Scaler 컴포넌트의 Match 필드 값이 높은 방향의 길이를 유지하고 다른 방향의 길이를 조절한다.
예를 들어 가로 일치가 1.0, 세로 일치가 0.0 이면 가로 길이는 고정하고 세로길이를 변경한다.
" UI 요소가 많이 나열된 방향의 일치 값을 높게 주는 것이 좋다 "
게임 매니저 만들기
: UI는 물론 플레이어의 상태에 따라 게임의 전반적인 상태를 관리한다.
싱글턴 패턴
: 어떤 오브젝트가 프로그램에 단 하나만 존재해야 하며, 어디서든 쉽게 접근 가능해야 할 때
-게임 매니저처럼 관리자 역할을 하는 오브젝트는 일반적으로 프로그램에 단 하나만 존재해야 함
-언제 어디서든 즉시 접근 가능해야 함정적
싱글턴 패턴을 구현할 때는 정적(static) 변수의 특징을 활용한다.
static으로 선언된 변수는 특정 오브젝트에 속하지 않고 같은 타입의 모든 오브젝트가 공유한다.
-메모리에 단 하나만 존재 & 클래스 이름과 점(.) 연산자로 접근 가능