• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

11분 50초 실행결과

23.03.31 03:34 작성 조회수 176

0

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

Managers.get_Scene () (at Assets/Script/Mangers/Managers.cs:52)

->return Instance._ui;

LoginScene.Update () (at Assets/Script/Scenes/LoginScene.cs:21)

-> 오류 CS:21Managers.Scene.LoadScene(Define.Scene.Game);

public class Managers : MonoBehaviour

{

static Managers s_lnstance; //static이라는 전역변수를 통해 오브젝트인 @manager의 유일성이 보장된다

static Managers Instance

{

get

{

lnit();

return s_lnstance;

}

}

SceneManagerEx _scene = new SceneManagerEx();

public static SceneManagerEx Scene

{

get

{

return Instance._scene;

}

static void lnit() //Instance가 널인 상태를 해결하기 위해 사용됨

{

if (s_lnstance == null)

{

GameObject go= GameObject.Find("@Managers");

if (go == null)

{

go = new GameObject { name = "@Managers" };

go.GetComponent<Managers>();

}

DontDestroyOnLoad(go);

s_lnstance = go.GetComponent<Managers>();

}

}

 

}

 

public class LoginScene : BaseScene

{

protected override void Init()

{

base.Init();

SceneType = Define.Scene.Login;

}

private void Update()

{

if (Input.GetKeyDown(KeyCode.Q))

{

public class LoginScene : BaseScene

{

protected override void Init()

{

base.Init();

SceneType = Define.Scene.Login;

}

private void Update()

{

if (Input.GetKeyDown(KeyCode.Q))

{ Managers.Scene.LoadScene(Define.Scene.Game);

}

}

public override void Clear()

{

Debug.Log("Login Scene CLEAR!!!!!");

}

}

}

뭐가 문제인지 잘 모르겠습니다 . 구글링 해본 결과

널의 값을 가질 수 없는 오브젝트에 널을 할당했다고 그러는데 잘 모르겠습니다 ㅠㅠ

 

답변 1

답변을 작성해보세요.

0

if (go == null)

{

go = new GameObject { name = "@Managers" };

go.GetComponent<Managers>(); << Eagle Eye

}