*.아래글에 코드가 잘안보여서 다시올립니다 ^^;
Generic Singleton 사용법에 대해서는 수많은.. 정말 무수히 많은 방법론이 존재하지만 제가생각하기에 Unity상에서 사용하기 괜찮은(좋은방법있으면 알려주시길 ㅠㅠ) 코드이다.
Singleton.cs
using UnityEngine;
using System.Collections;
public class Singleton<T> : MonoBehaviour where T : MonoBehaviour
{
protected static T sInstance;
public static T GetInstance
{
get
{
if (sInstance == null)
{
sInstance = (T)FindObjectOfType(typeof(T));
}
if (sInstance == null)
{
Create();
}
return sInstance;
}
}
private static void Create()
{
if (GameObject.Find("_Singleton"))
{
GameObject goInst = GameObject.Find("_Singleton");
sInstance = goInst.AddComponent<T>();
}
else
{
GameObject goInst = new GameObject("_Singleton");
sInstance = goInst.AddComponent<T>();
}
}
}
how to used
public class SettingManager : Singleton<Settingmanager> {
private void OnApplicationQuit() {
sInstance = null;
}
}
싱글톤의 가장 기본적인 구조이고 이를 응용하여 생산성을 높이는 방법은 끝도없이 존재한다는 ^^
0 개의 댓글:
댓글 쓰기