NullReferenceException: Object reference not set to an instance of an object오류! 몇 번 겪어봤는데 오늘 또 만났네요.
유니티에서 제공하는 간단한 2D로그라이크게임 튜토리얼을 따라하고 있었습니다.
아래링크에서 보실 수 있구요.
https://learn.unity.com/project/2d-roguelike-tutorial
2D Roguelike - Unity Learn
Learn how to make a 2D Roguelike game with this project. Over the course of the project you will create procedural tile-based levels, implement turn-based movement, add a hunger system, and finally add audio and mobile touch controls. This video series was
learn.unity.com
위의 영상들을 레트로님께서 한글로 번역해주신 버전도 있습니다.
https://www.youtube.com/watch?v=B3QsIIp1M2Y&list=PLctzObGsrjfxSys0Tdq9vPl\_YGVYSI337
따라하던 와중 NullReferenceException: Object reference not set to an instance of an object 오류가 발생하더라구요. 12/14 (14개의 영상중 12번째)까지 하고 나니 오류가 발생했습니다.
예전에도 종종 겪었던 문제인데 참조하려는 오브젝트의 형식이 잘못됐거나 참조할 오브젝트를 찾을 수 없다는 뜻입니다.
보통은 두가지 방법으로 해결이 가능합니다.
첫번째 방법으로는 Awake나 Start함수로 가보셔서 초기화가 잘 되어있는지 확인을 해보고 그래도 안된다면 에러가 생긴 오브젝트 변수를 찾아 그 오브젝트 변수를 public으로 선언해주고 인스펙터창에 드래그함으로써 직접 초기화를 해주시면 됩니다.
두번째 방법으로는 조건문으로 그 오브젝트가 null인지 아닌지 확인하여 null이라면 코드실행을 하지않도록 하면됩니다.
if( object != null ){ // 실행할 코드 }
와 같은 형식으로 코드를 작성하시면 될 것 같습니다.
저도 첫번째와 비슷한 경우로 오류가 났던 것이었어요. 튜토리얼 영상에서는 Text(UI)를 사용하는데 제가 사용하는 유니티(2021.2.7f1)에서는 Text(UI)는 아예 사라지고 TextMeshPro밖에 남아있지 않아 초기화해주는 부분에서 오류가 있었습니다..!
TextMeshPro로 선언 및 초기화를 하니 오류가 발생했는데 TextMeshProUGUI로 선언 및 초기화를 해주니 오류가 해결되었어요..!Text가 없어 당황하신 분들은
Text 대신 TextMeshProUGUI로 선언 및 초기화를 해주시면 됩니다.
단, TextMeshPro를 사용하기 위해선 맨 위에 using TMpro;를 써주셔야합니다.
'유니티[Unity]' 카테고리의 다른 글
유니티[Unity3D] 스크립트로 오브젝트 태그 변경하기 (0) | 2022.01.19 |
---|---|
유니티[Unity3D] 오브젝트 간 충돌판정 무시하기 (0) | 2022.01.13 |
유니티[Unity3D] TMP_InputFIeld()타입 초기화 (3) | 2022.01.11 |
유니티[Unity3D] Mathf.Clamp와 Mathf.Repeat의 기능 및 차이 (2) | 2022.01.06 |
최근댓글