• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

gridPanel에서 nullreference 오류가 납니다

22.01.20 22:21 작성 조회수 192

0

아래에 같은 질문이 있길래 따라 했는데 유니티랑 C# 둘다 처음이라 그런지 찾기가 너무 어렵네요 ㅜ

여기서만 4시간째 헤메고 있습니다

 

오류코드는 :

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

UI_Inven.Init () (at Assets/Script/UI/scene/UI_Inven.cs:32)

UI_Inven.Start () (at Assets/Script/UI/scene/UI_Inven.cs:14)

 이렇게 나오고

 

 

코드는 :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;



public class UI_Inven : UI_Scene
{
    enum GameObjects
    {
        GridPanel
    }



    void Start()
    {
        Init();
    }



    public override void Init()
    {
        base.Init();

        Bind<GameObject>(typeof(GameObjects));

        GameObject gridPanel = Get<GameObject>((int)GameObjects.GridPanel);
        foreach (Transform child in gridPanel.transform)
            Managers.Resource.Destroy(child.gameObject);



  

        for (int i = 0; i < 8; i++)
        {
            GameObject item = Managers.Resource.Instantiate("UI/Scene/UI_Inven_Item");

            item.transform.SetParent(gridPanel.transform);

            
            UI_Inven_Item invenItem = Util.GetOrAddComponent<UI_Inven_Item>(item);

            invenItem.SetInfo($"집행검{i}번");

        }

    }

}

 

이렇게 짰습니다

답변 1

답변을 작성해보세요.

1

버그를 눈으로 찾으려니 어려운겁니다.
에러가 나는 줄에 breakpoint를 걸고
멈춰서 어디가 null인지를 확인한 다음,
왜 객체가 null인지를 분석하는 수순을 밟아야 합니다.
일단 디버깅 하는 방법을 아시는지부터 확인이 필요할 것 같네요.

코드 문제뿐 아니라 프리팹이나 경로에 철자가 다른지도 확인이 필요합니다.

ex) GridPanel이 맞는지, UI/Scene/UI_Inven_Item에 잘 있는지 등

남훈님의 프로필

남훈

질문자

2022.01.20

감사합니다

코드가 중간에 막혀서 코드 정리 파일이랑 비교하다가 귀찮아서 그냥 파일을 붙여버리는 짓을 한 것 때문에 프리팹이랑 코드가 꼬여서 그런거 였습니다

배우려고 해놓고 이렇게 꼼수부리다 고생하고 나니 왜 그랬나 싶네요 다시 열심히 해보겠습니다