버그 해결을 위한 모든 질문을 던져
0 votes
207 views
public class MonoSingleton<T> : MonoBehaviour where T : MonoBehaviour
{
    private static T m_Instance = null;
    public static T Instance
    {
        get
        {
            if (m_Instance == null)
            {
                m_Instance = (T)FindObjectOfType(typeof(T));

                if (m_Instance == null)
                    m_Instance = (new GameObject(typeof(T).Name)).AddComponent<T>();

                DontDestroyOnLoad(m_Instance.gameObject);
            }
            return m_Instance;
        }
    }

}


이런 형태의 싱글톤을 만들어서 사용 하고 있습니다.

public class ObjectPool<T> : MonoSingleton<ObjectPool<T>> where T:MonoBehaviour

이런식으로 상속 받아서

objectPool<someclass>.instacne.callfunction();

이라고 하면 빌드시 에러가 안뜨는데 막상 유니티에서 실행하면

NullReferenceException: Object reference not set to an instance of an object

MonoSingleton`1[T].get_Instance ()(line 17) DontDestroyOnLoad(m_Instance.gameObject) (요기서 null이라고 뜨는데 이유를 모르겠습니다.)

혹시 문법상 뭐가 잘못되었는지 가르침 부탁드립니다.

asked (4 point)
수정됨 , 207 views
코드 삽입 기능이 있습니다. 그걸로 올려주시면 더욱 보기 편할것 같아요 ㅎ

1 답변

0 votes
유니티허브카페에 답변이 달렸더군요
answered (142 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

518 질문
675 answers
665 댓글
118,171 users