ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 13장. 유니런 : 발판 반복 생성과 게임 완성
    Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 11. 18. 15:20

    <발판 구현>

    <OnEnable() 메서드>

    <발판 생성기 구현>

    <오브젝트 풀링>

    <미리 생성된 발판을 재사용하는 방법>

     

    13.1 발판 만들기

        13.1.1 Platform 스크립트

        13.1.2 Platform의 OnEnable() 메서드

            - OnEnable() 메서드는 Awake()나 Start() 같은 유니티 이벤트 메서드

            - Start() 메서드처럼 컴포넌트가 활성화될 때 자동으로 한 번 실행됨. 처음 한 번만 실행되는 Start() 와 달리 스크립트 컴포넌트가 활성화 될 때마다 실행됨

                => 스크립트 컴포넌트를 끄고 켜는 방식으로 재실행할 수 있음. 또는 게임 오브젝트를 활성화/비활성화로도 가능

            - Random.Range(0, 3) : 0, 1, 2 중에서 한 숫자를 랜덤으로 변환.

        13.1.3 Platform의 OnCollisionEnter2D() 메서드

        13.1.4 Platform 스크립트의 전체 코드

        13.1.5 Platform 컴포넌트 설정하기

    13.2 발판 생성기 만들기

        13.2.1 오브젝트 풀링

            - Instantiate() 나 Destroy() 처럼 오브젝트를 실시간으로 생성/파괴하는 처리는 성능을 많이 요구함 -> 게임 프레임 드랍

            - 오브젝트 풀링은 필요한 오브젝트를 게임 초반에 미리 생성. -> 로딩 시간이 길어질 수 있음

        13.2.2 발판 무한 배치 과정

        13.2.3 PlatformSpawner 작성하기

        13.2.4 PlatformSpawner의 필드

        13.2.5 PlatformSpawner의 Start() 메서드

            - Instantiate() 메서드는 프리펩의 복제본을 생성. 프리펩 명과, 생성할 위치, 생성 시 회전 값을 받음.

            - Quaternion.identity : 오일러각의 (0, 0, 0) 회전에 대응

        13.2.6 PlatformSpawner의 Update() 메서드

            - Time.time : 게임 시작 후 시간이 몇 초 지났는지 출력하는 변수

        13.2.7 PlatformSpawner 스크립트의 전체 코드

        13.2.8 PlatformSpawner 컴포넌트 설정하기

    13.3 빌드하기

        13.3.1 배경음악 추가하기

        13.3.2 유니런 빌드하기

    13.4 마치며

        - OnEnable() 메서드는 컴포넌트가 활성화될 때마다 매번 실행

        - 오브젝트 풀링은 필요한 오브젝트를 미리 생성하여 사용하는 방식

        - 오브젝트 풀링에서는 오브젝트를 실시간으로 생성하지 않고 풀에 있는 오브젝트를 가져다 씀

        - 오브젝트 풀링에서는 오브젝트를 실시간으로 파괴하지 않고, 파괴할 오브젝트를 풀로 봔환

        - 오브젝트 풀링을 사용하면 초기 로딩은 길어지지만 실시간 생성/파괴에 의한 성능 저하를 막을 수 있음

        - 오디오 소스 컴포넌트의 Loop를 체크하면 오디오가 반복 재생됨

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    댓글

Designed by Tistory.