오류
577
작성한 질문수 9
8분여 정도 몬스터 따라오기 실행시키는 가운데 아래와 같은 에러 메시지가 뜹니다.
NullReferenceException: Object reference not set to an instance of an object
MonsterController.UpdateMoving () (at Assets/Scripts/Controllers/MonsterController.cs:66)
BaseController.Update () (at Assets/Scripts/Controllers/BaseController.cs:54)
cs 66번째 줄은 nma.speed 줄이고
// 이동
Vector3 dir = _destPos - transform.position;
if (dir.magnitude < 0.1f)
{
State = Define.State.Idle;
}
else
{
NavMeshAgent nma = gameObject.GetOrAddComponent<NavMeshAgent>();
nma.SetDestination(_destPos);
nma.speed = _stat.MoveSpeed;
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(dir), 20 * Time.deltaTime);
}
BaseController cs 54는 UpdateMoving(): 줄입니다.
void Update()
{
switch (State)
{
case Define.State.Die:
UpdateDie();
break;
case Define.State.Moving:
UpdateMoving();
break;
case Define.State.Idle:
UpdateIdle();
break;
case Define.State.Skill:
UpdateSkill();
break;
}
}
무엇이 문제인지요?
답변 5
0
아직까지 따라가기 급급해서 전체적 맥락만 대략 파악하고 진도 나가고 있습니다. 다시 한번 학습하면서 브레이크포인트 등을 통해 세밀하게 복습해 나가겠습니다. 친절한 가르침 넘넘 감사드립니다. 불금되세요.
1
ㅎㅎ 찾으셨다니 다행이고 다음 강의 만들 땐 디버깅을 더더더 강조해야겠군요.
스스로 코드 작업을 하실 땐 위와 같이 짜잘한 크래시가 많이 나는데
null 크래시 같은 경우에는 30초 이내로 원인 파악까지 끝낼 정도로 숙련이 되어야 합니다.
1) _stat에서 크래시 났다!
2) breakpoint 걸고 null 여부 확인
3) _stat 채우는 부분에서 breakpoint 걸고 확인
4) 해당 줄이 무엇이 문제인지 분석
요 스텝은 딱히 책에서 가르쳐주는 개념은 아니고,
스스로 버그마다 접근하는 요령이 생겨야 합니다.
그럼 힘내세요!
0
_stat = gameObject.GetComponent<Stat>();
이것이 저는
_stat = gameObject.GetComponent<PlayerStat>();
으로 되어 있었습니다.
이것을 샘과 같이 고쳤더니 더 이상 에러가 안뜹니다.
0
그 부분이 아닙니다.
float MoveSpeed는 애당초 단순 float라서 아무 문제가 없고
_stat = gameObject.GetComponent<Stat>();
하는 부분 바로 다음에 breakpoint를 걸고 _stat을 잘 찾는지를 확인하셔야 합니다.
아마도 Stat 콤포넌트가 없을 확률이 높습니다.
0
크래시가 나는 부분에 breakpoint를 걸고 디버깅을 해보시기 바랍니다.
null 크래시는 가장 빈번하게 발생하는 버그라서, 쉽게 찾으실 수 있을겁니다.
이런 문제는 반드시 스스로 찾는 연습을 꾸준히 해야 디버깅 속도가 빨라집니다.
0
코드를 빼서 테스트를 하기 보단 breakpoint를 걸고 유니티에 연결을 하신 다음
멈춰서 살펴보세요. _stat이 null이라거나, nma가 null이라거나 어떤 이유가 있겠죠!
_stat이 null이라면 다시 _stat을 채워주는 부분 코드에 가서 살펴보면 됩니다.
0
breakpoint 이렇게 해서 찾는 것이 맞는지요?
보니 _stat에 대한 MoveSpeed 구성원을 찾을 수 없다고는 말이 나오는데 무슨 말인지요?
제가 MoveSpeed를 규정하지 않아서 그런가요?
Stat.cs 보면 아래와 같이 선언되어 있는데요.

0
혹시 VS를 사용하시는게 맞나요?
그리고 stat이 null인 상황으로 보이는데,
위에서 _stat에 마우스를 갖다 대면 어떻게 나오는지 확인 후
stat을 채우는 코드에서도 bp를 걸어보세요.
UI 기능 관련 질문이 있습니다!
0
24
2
픽셀 좌표 스크린 좌표
0
26
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
67
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
79
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
81
1
Input 적용과 관련하여 질문 있습니다.
0
72
1
디버그 불가.. Unity에 연결 불가
0
76
1
달리기 애니메이션 에러
0
85
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
63
1
GetKey 오류
0
108
2
에셋을 어디에 올려두신지 알 수 있나요?
0
104
1
재귀호출? 오류나는데 왜 이래요 ?
0
167
6
Animation blending 파라미터 계산
0
65
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
94
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
85
2
질문있습니다
0
142
2
아 이거 소스코드 같은거 없나요?
0
140
3
질문 드립니다. string.IsNullOrEmpty(name)
0
85
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
133
2
유니티6 NavMesh 안되는분들
1
174
1
Unity6 Unity-Chan Material 마젠타 문제 해결법
7
524
1
GetComponent<Poolable> 질문드립니다.
0
99
2
UI 불러오지 못함
0
116
2
UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.
0
152
2







