중급 프로그래머 가는 길 재미있게 가보자!

안녕하세요. 프로그래머 JD입니다. 

이번글은 BuildManager 클래스를 설명하는 시간을 갖겠습니다.

거두절미하고 BuildManager 클래스 확인해 보겠습니다.

using UnityEngine;

public class BuildManager : MonoBehaviour
{
    public static BuildManager instance;

    private void Awake()
    {
        if(instance != null)
        {
            Debug.LogError("More than one BuildManager in scene!");
            return;
        }
        instance = this;
    }

    public GameObject standardTurretPrefab;
    private GameObject turretToBuild;

    private void Start()
    {
        turretToBuild = standardTurretPrefab;
    }

    public GameObject GetTurretToBuild()
    {
        return turretToBuild;
    }
}

멤버변수인 instance가 있습니다. 

static으로 설정한이유는 모든 객체가 같은 속성으로 되기위해(공유하기위해) 설정했습니다.

Awake()문입니다.

    private void Awake()
    {
        if(instance != null)
        {
            Debug.LogError("More than one BuildManager in scene!");
            return;
        }
        instance = this;
    }

조건문 instance 가 있는경우 즉 이 클래스가 두번 선언한경우 입니다.

싱글턴 패턴은 객체를 공유하기위한 패턴이라서 이 클래스가 두개이상있는경우 객체들은 어떤것을 공유해야할줄 몰라 에러가 생깁니다. 

그래서 두개이상 생성될경우의 예외를 방지하기위해 예외처리했습니다.

조건문을 빠져나와서 자신의 주소값을 instance에 대입합니다. 

여기까지가 싱글턴 패턴에 기본 틀 입니다. 

 

그런다음 public 으로 할당된 object를 private 로 할당된 object에 대입합니다.

 

유니티 에디트 화면으로 돌아가 public으로선언한 변수들을 대입해줍니다.

www.youtube.com/watch?v=OjvNfuOZI-I

여기까지 해서 타워건설 프로젝트는 마무리됩니다. 

포스트 양조절을 실패해서 오늘은 여기까지해서 마무리 하겠습니다.

다음시간에는 Camera 이동하는 프로젝트로 찾아오겠습니다.

읽어주셔서 감사하고 Brackeys에게 감사합니다. 

출처 www.youtube.com/watch?v=t7GuWvP_IEQ&list=PLPV2KyIb3jR4u5jX8za5iU1cqnQPmbzG0&index=6

 

+ Recent posts