반응형

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;를 써주셔야합니다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기