-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
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
Rookiss
지식공유자2022.01.20
버그를 눈으로 찾으려니 어려운겁니다.
에러가 나는 줄에 breakpoint를 걸고
멈춰서 어디가 null인지를 확인한 다음,
왜 객체가 null인지를 분석하는 수순을 밟아야 합니다.
일단 디버깅 하는 방법을 아시는지부터 확인이 필요할 것 같네요.
코드 문제뿐 아니라 프리팹이나 경로에 철자가 다른지도 확인이 필요합니다.
ex) GridPanel이 맞는지, UI/Scene/UI_Inven_Item에 잘 있는지 등
남훈
질문자2022.01.20
감사합니다
코드가 중간에 막혀서 코드 정리 파일이랑 비교하다가 귀찮아서 그냥 파일을 붙여버리는 짓을 한 것 때문에 프리팹이랑 코드가 꼬여서 그런거 였습니다
배우려고 해놓고 이렇게 꼼수부리다 고생하고 나니 왜 그랬나 싶네요 다시 열심히 해보겠습니다
답변 1