본문 바로가기
개발/Unity3D

Unity3D 전역변수 사용방법 3가지

by 비트-바이트 2024. 4. 22.
반응형

 

유니티에서 전역 변수를 사용하는 방법은 다양하지만, 일반적으로 전역 변수를 관리하기 위해 몇 가지 방법이 사용됩니다. 전역 변수는 여러 스크립트에서 접근할 수 있는 변수를 말하며, 게임의 전반적인 상태를 관리하는 데 유용할 수 있습니다. 여기 몇 가지 일반적인 방법을 소개합니다.

1. 싱글턴 패턴 사용

싱글턴 패턴은 클래스의 인스턴스가 하나만 생성되고, 어디서든 접근할 수 있도록 관리하는 디자인 패턴입니다.

이 방법은 전역 변수를 사용할 때 매우 흔하게 적용됩니다.

public class GameManager : MonoBehaviour
{
    public static GameManager Instance { get; private set; }

    public int globalScore;  // 예시 전역 변수

    void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
            DontDestroyOnLoad(gameObject); // 장면이 바뀌어도 파괴되지 않도록 함
        }
        else
        {
            Destroy(gameObject);
        }
    }
}

 

이렇게 하면, 다른 스크립트에서 "GameManager.Instance.globalScore"를 통해 globalScore 변수에 접근할 수 있습니다.

 

2. 정적 변수

클래스 자체에 정적 변수를 선언하여 언제든지 접근할 수 있도록 할 수 있습니다. 이 방법은 싱글턴보다 구현이 간단하지만, 객체 지향 원칙에는 적합하지 않을 수 있습니다.

public static class GameSettings
{
    public static int globalScore = 0;
}

 

이 경우, 어디서든 GameSettings.globalScore로 접근할 수 있습니다.

 

3. PlayerPrefs 사용

PlayerPrefs는 유니티에서 제공하는 데이터 저장 방식으로, 주로 간단한 데이터를 저장하는 데 사용됩니다. 이를 이용해 애플리케이션을 종료하고 다시 실행해도 정보가 유지되도록 할 수 있습니다.

public static class GlobalData
{
    public static int GlobalScore
    {
        get => PlayerPrefs.GetInt("GlobalScore", 0);
        set => PlayerPrefs.SetInt("GlobalScore", value);
    }
}

 

이렇게 하면 게임 전반에서 GlobalData.GlobalScore를 통해 점수를 저장하고 불러올 수 있습니다.

 

보통

전역 변수는 코드의 의존성을 증가시키고, 추후 유지보수를 어렵게 할 수 있기 때문에 정말 필요한 경우에만 사용하는 것이 좋습니다.

 

라고 하는데. 단기 전시콘텐츠 용을 만들다보니, 간단하고 빠르게 적용 가능한 방법을 사용하는 편입니다.

 

반응형