반응형
유니티에서 전역 변수를 사용하는 방법은 다양하지만, 일반적으로 전역 변수를 관리하기 위해 몇 가지 방법이 사용됩니다. 전역 변수는 여러 스크립트에서 접근할 수 있는 변수를 말하며, 게임의 전반적인 상태를 관리하는 데 유용할 수 있습니다. 여기 몇 가지 일반적인 방법을 소개합니다.
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를 통해 점수를 저장하고 불러올 수 있습니다.
보통
전역 변수는 코드의 의존성을 증가시키고, 추후 유지보수를 어렵게 할 수 있기 때문에 정말 필요한 경우에만 사용하는 것이 좋습니다.
라고 하는데. 단기 전시콘텐츠 용을 만들다보니, 간단하고 빠르게 적용 가능한 방법을 사용하는 편입니다.
반응형
'개발 > Unity3D' 카테고리의 다른 글
[shader] 오로라 (0) | 2024.07.01 |
---|---|
Unity Busy for... 버그? 오류 해결방법을 찾아보다. (0) | 2024.04.24 |
오브젝트 드래그/드롭 기능에 스냅을 붙여 퍼즐 만들기 (0) | 2024.04.23 |
동적 UI와 정적 UI의 정의 (0) | 2024.04.21 |
유니티(Unity) 시리얼(RS232) <-> Unity (0) | 2024.04.17 |