일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 도트
- 서포터즈
- 인디게임 개발
- 반환원정대
- 채색
- 스마일게이트
- Pixelart
- 멋쟁이사자처럼
- 기초
- 연습
- layer
- 노하우
- 자원순환보증금관리센터
- 애니메이션
- 드로잉 연습
- menu
- 포토샵
- 픽셀아트
- COSMO
- 모작
- 도트공부
- 드로잉
- 개발
- 장학팀
- pixel art
- TOOL
- Aseprite
- photoshop
- 에이세프라이트
- 픽셀 아트
- Today
- Total
소소한 나의 하루들
유니티 TextMeshPro(TMP) UI 래퍼런스 할당 본문
이전까지만 해도 Text UI를 Legacy버전으로 사용해왔다. 그래서 이것을 스크립트로 public 접근자로 작성하여 컴포넌트에 드래그 적용할 수 있는 방법은 맨 위에 using UnityEngine.UI;를 작성해주고, public Text 변수명;으로 래퍼런스를 할당할 수 있도록 public 접근자와 Text 자료형을(UnityEngine.UI.Text : UnityEngine.UI 속성의 Text 메소드) 사용해주었다.
그런데 비교적 최근에는 유니티에서 TextMeshPro(TMP)를 권장하고 있고, 이제는 Text 속성의 UI가 Text - TextMeshPro로 완전히 대체되었다.
따라서 Text로 선언한 UIPoint와 UIStage는 UnityEngine.UI 클래스로서, text 오브젝트만 할당받을 수 있어서 TextMeshPro로 생성한 UI 오브젝트인 Round와 Score가 할당될 수 없었다.
그래서 이제는 using TMPro를 작성함으로서 TMPro라는 클래스를 활용하고, 여기에 속해있는 TextMeshProUGUI 클래스를 public으로 작성해주어야 한다.
TextMeshPro는 안된다.
아직 Image UI는 UnityEngine.UI 클래스에 속해있는 Image를 사용하여 할당해야한다.
https://docs.unity3d.com/Packages/com.unity.textmeshpro@3.0/manual/index.html
이것저것 구글링해가며 찾아가다가 결국 유니티 공식문서를 찾아보고나서야 public 선언한 Text 변수에 왜 TextMeshPro UI가 할당할 수 없었던 원인을 파악할 수 있었다.
유니티로 개발공부를 시작하고나서, 처음으로 문제가 발생했을때 유니티 공식문서를 찾아보았는데 생각보다 정리도 잘되어있고 이해하기 어렵지 않았다. 앞으로도 유니티 공식문서를 우선적으로 찾아보는 습관을 길러야겠다.
'개발 > 유니티' 카테고리의 다른 글
유니티 코루틴(Coroutine) / 서브루틴(Sub Routine) +α (0) | 2024.01.27 |
---|---|
TextMeshPro 활성화 /비활성화 (ft. SetActive() vs .enabled) (0) | 2024.01.26 |
2d 플랫포머(8) - 스테이지를 넘나드는 게임 완성하기 (0) | 2024.01.25 |
2d 플랫포머(7) - 플레이어 피격 이벤트 구현하기 (0) | 2024.01.24 |
2d 플랫포머(6) - 몬스터 AI 구현하기 (0) | 2024.01.24 |