유니티 TMP_InputField()타입 초기화

최장범·2023년 9월 12일
0


유니티 2D 팀프로젝트를 하면서 TextMeshPro를 사용하고 있습니다. 과연 legacy-text 보다 훨씬 많은 것을 할 수 있고 깔끔하고 사용하기도 쉽다는 장점에 자주 사용하고 있습니다.


문제

하지만 이런 TextMeshPro를 사용하던중 문제에 직면했습니다. 저희 게임은 시작할때 강의에서 사용했던 inputfield를 이용해서 플레이어의 이름을 받으려고 했는데, input field타입의 오브젝트를 초기화 하는데에서 문제가 발생했습니다.

public InputField nameInputField;

이런식으로 작성을 하였는데 스크립트적으로는 문제가 발생하지 않았지만 유니티에서 실행이 되지않고 nullreferenceobject 오류가 발생하였습니다.


해결법

해결방법은 제가 사용한것이 Input Field -TextMeshPro 타입이라는것을 인지하는 것이었습니다. TextMeshPro는 Input Field 타입으로 선언을 하는것이 아니고, TMP_InputField 타입으로 선언을 하여 초기화를 했어야 하는 것이었습니다. 그리고 using TMPro; 또한 추가해줘야 했습니다.
그래서 변경이 된 코드는;

public TMP_InputField nameInpuField;

위의 코드를 사용하여 초기화를 진행하였더니 유니티 내부에서도 할당이 가능했습니다.


한 줄 생각

  • 해결법이란 것은 문제의 본질을 깨닫고 나면 생각보다 쉽게 찾을 수 있는것 같다.

0개의 댓글