10:58 코드가 작동하지 않습니다.
484
投稿した質問数 17
앞서 Instantiate 함수로 좀비를 spawnPoint에 랜덤으로 생성하는 것은 가능합니다.
10:58 에서 EnemySpawn 함수를 영상대로 작성하는 경우 좀비가 등장하지 않고 오류가 발생합니다.
NullReferenceException: Object reference not set to an instance of an object
GameManager+<EnemySpawn>d__20.MoveNext () (at Assets/_My/Scripts/GameManager.cs:123)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <f7237cf7abef49bfbb552d7eb076e422>:0)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
GameManager:Start() (at Assets/_My/Scripts/GameManager.cs:52)
다만 yield return new WaitForSeconds(2f); 아래에 코드를 작성하면 정상적으로 좀비가 랜덤 생성됩니다.
그대로 사용해도 되지만 원인을 추적하고 싶은데요 ㅜㅜㅜ
어느 부분을 점검하는 것이 좋을지 문의드립니다.
IEnumerator EnemySpawn()
{
//Instantiate(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform.position, Quaternion.identity);
yield return new WaitForSeconds(2f);
GameObject enemy = PoolManager.Instance.ActivateObj(4);
SetObjPosition(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform);
StartCoroutine(EnemySpawn());
}
回答 2
0
흠... 이상하네요.
NullReferenceException: Object reference not set to an instance of an object
이 오류는 해당 오브젝트를 등록하지 않아서 비어있는 경우 발생되는 오류 입니다.
GameManager+<EnemySpawn>d__20.MoveNext () (at Assets/_My/Scripts/GameManager.cs:123)
이 오류는 코드 123번째 줄에 해당 오브젝트가 비어있다는 말이고
GameManager:Start() (at Assets/_My/Scripts/GameManager.cs:52)
이 오류는 첫 호출되는 부분인 코드 52번째 줄을 의미합니다.
즉 마지막인 123번째 줄에 있는 코드에서 해당 오브젝트가 비어있어서 오류가 났다는건데
처음 Instantiate(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform.position, Quaternion.identity); 이렇게 작성한것이 되었다가
GameObject enemy = PoolManager.Instance.ActivateObj(4);
이 코드에서 해당 오브젝트를 받아오게되는데 여기서 문제가 있었다면
아마도 10:18 에서 +버튼을 클릭해서 좀비 프리팹을 등록하지 않아서 그런것이 아닌가 생각됩니다.
그런데
yield return new WaitForSeconds(2f);
GameObject enemy = PoolManager.Instance.ActivateObj(4);
SetObjPosition(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform);
이렇게 작성하였는데 되었다는것을 보면 정상적으로 등록되었다는건데
이걸
GameObject enemy = PoolManager.Instance.ActivateObj(4);
SetObjPosition(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform);
yield return new WaitForSeconds(2f);
이렇게 작성하여도 문제가 없다는것입니다.
혹시 코드를 다 작성한 다음 주석처리하고 저장을 하지 않아서 그런건 아닌지......
그거 말곤 정확하게 답을 드릴 수 없는것 같습니다.
0
혹시 해당 스크립트 파일들만 전문을 전달 주실 수 있을까요.
diff 로 확인해보려 합니다.
여기에서 Unity 안에서 세팅하는 것은 풀링 강좌부터 영상 파일을 다시 한 번 체크해보면
스크립트 든 설정이든 어딘가 제가 다르게 한 부분을 찾을 수 있을 것 같습니다.
OAuth방식 강의 문의
0
11
0
싱글턴패턴
0
6
1
코드 관련 질문
0
21
2
섹션7 수업자료 업로드 부탁드립니다.
0
22
2
Dictionary Key를 int에서 string으로 변경한 이유에 대한 문의
0
19
1
프로젝트 질문 문의
0
46
1
UI 기능 관련 질문이 있습니다!
0
37
2
03-01 (16. CharacterController)
0
31
2
TLS 질문드립니다.
0
43
2
Task 구현 28:36 Equals 에서 잘 모르는 부분이 있습니다.
0
27
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
46
2
픽셀 좌표 스크린 좌표
0
33
0
Locomotion랑 Turn 이 꼭 부모 자식 관계일 필요가 있나요?
0
25
1
Rider대신 VS를 써도 괜찮나요?
0
117
2
Claude Code Pro구독하고 있는 상태에서 크레딧 결제, 사용문의
0
219
2
LobbyUIController의 백키가 사라졌는데 왜그런건가요?
0
42
2
무조건 타이틀 씬부터 시작해야하나요?
0
41
1
BaseUI, UIManager
0
51
3
토큰 사용량 및 인증 관련해서 질문드립니다.
0
132
2
3강 조준시 버그가 납니다.
0
101
1
6주차 질문입니다.
1
302
2
27:46 4강) 콘솔 에러가 발생했습니다
2
358
1
3강 31:42 private Rig 를 사용하기 위해서 using 구문을 추가해야 합니다
4
1258
3
2강 주의)2:49 에셋과 3:36 에셋이 다릅니다
3
402
1

