ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12장. 유니런 배경 스크롤링과 게임 매니저
    Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 11. 17. 18:08

    <2D 스프라이트가 그려지는 순서 조정하기>

    <반복되는 배경을 만드는 방법>

    <static의 개념>

    <여러 해상도에서 일관된 UI를 유지하는 방법>

    <싱글턴 패턴>

     

    12.1 배경 추가하기 

        12.1.1 정렬 레이어 

            - 스프라이트 렌더러 컴포넌트가 그리는 그래픽의 앞뒤 정렬은 트랜스폼 컴포넌트의 위치값과 상관없음

                => z축이 필요한데 2D에서는 z축 값이 무의미하게 취급되기 때문..

            - 2D 게임 오브젝트가 그려지는 순서는 스프라이트 렌더러의 정렬 레이어가 결정.

            - 레이어 목록에서 가장 아래쪽 정렬 레이어가 가장 앞쪽에 그려짐.

                => 배경은 가장 위쪽 캐릭터는 가장 아래쪽.

    12.2 움직이는 배경과 발판

        12.2.1 ScrollingObject

        12.2.2 반복되는 배경 만들기

            - Box Collider 2D 컴포넌트는 2D 스프라이트 게임 오브젝트에 추가되면 자동으로 그 크기에 맞춰짐.

            - Awake() : Start() 메서드처럼 초기 1회 자동 실행되는 유니티 이벤트 메서드지만, Start() 메서드보다 실행시점이 한 프레임 더 빠름

            - Vector3를 Vector2에 할당하는 건 불가능. Vector2를 Vector3에 할당하는 것은 가능.

                transform.position = (Vector2) transform.position + vector2;

    12.3 게임 UI 만들기

        12.3.1 고정 픽셀 크기

        12.3.2 화면 크기에 따라 스케일

            - 작은 크기의 픽셀을 강제로 늘리는 방식이 아님

            - 실제화면과 기준 해상도 사이의 화면 비율이 다른 경우 캔버스 스케일러 컴포넌트의 일치 필드 값이 높은 방향의 길이를 유지하고 다른 방향의 길이를 조절

            - 일치 값을 결정하는 데는 정해진 기준이 없음.

        12.3.3 캔버스 스케일러 설정 

        12.3.4 점수 UI 텍스트 만들기

        12.3.5 게임오버 텍스트 만들기

    12.4 게임 매니저 만들기

        12.4.1 싱글턴 패턴의 필요성

            - 디자인 패턴 : 어떤 문제를 해결하는 데 좋다고 알려진 구조.

            - 어떤 오브젝트가 프로그램에 단 하나만 존재해야하며, 어느 곳에서도 쉽게 접근 가능해야 할 때 싱글턴 패턴 사용

        12.4.2 정적

        12.4.3 GameManager 스크립트 준비

        12.4.4 GameManager 싱글턴 구현

        12.4.5 GameManager의 필드

        12.4.6 GameManager의 Update() 메서드

            - SceneManager.LoadScene() : 씬 이름을 입력 받아 해당 신을 다시 로드

            - SceneManager.GetAcitveScene().name : 현재 씬의 이름

        12.4.7 GameManager의 AddScore() 메서드

        12.4.8 GameManager의 OnPlayerDead() 메서드

        12.4.9 GameManager 스크립트의 전체 코드

        12.4.10 PlayerController 스크립트 수정

        12.4.11 ScrollingObject 스크립트 수정

        12.4.12 GameManager 컴포넌트 설정하기

    12.5 마치며

        - 2D 게임 오브젝트를 그리는 순서는 정렬 레이어로 조정

        - 캔버스 스케일러 컴포넌트의 스케일 모드는 다양한 화면 크기에 대해 캔버스의 크기가 어떻게 변경될지 결정

        - '고정 픽셀 크기' 모드에서는 화면 크기(해상도)가 달라져도 UI 요소의 크기(픽셀의 개수)는 달라지지 않음

        - '고정 픽셀 크기' 모드에서는 화면의 크기(해상도)가 커졌을 때, UI가 상대적으로 작게 보이는 문제가 있음

        - '화면 크기에 따른 스케일' 모드에서는 기준 해상도를 정하고, 게임 화면 크기에 맞춰 캔버스를 확대/축소하는 방식으로 동작

        - '화면 크기에 따른 스케일' 모드에서는 다양한 크기와 비율의 화면에서도 기준 해상도에서의 UI 모습을 최대한 유지할 수 있음

        - static으로 선언된 정적 변수는 하나의 변수를 여러 오브젝트가 공유하는 방식으로 동작

        - 정적 변수는 클래스 이름과 점 연산자를 이용해서 접근

        - 싱글턴 패턴은 '단 하나만 존재해야 하며, 손쉽게 접근 가능한' 오브젝트를 구현하는 디자인 패턴

     

     

            

     

     

     

     

            

    댓글

Designed by Tistory.