게임 개발 공부/Fix Error

NullReferenceException: TMPro.MaterialReference..ctor

CalebHong 2025. 8. 11. 11:25
SMALL

빌드 시 아래와 같은 오류가 발생하면서 빌드 실패가 됨.

NullReferenceException: Object reference not set to an instance of an object
TMPro.MaterialReference..ctor (System.Int32 index, TMPro.TMP_FontAsset fontAsset, TMPro.TMP_SpriteAsset spriteAsset, UnityEngine.Material material, System.Single padding) (at ./Library/PackageCache/com.unity.ugui@ad30dfd93d36/Runtime/TMP/MaterialReferenceManager.cs:525)
TMPro.TextMeshProUGUI.SetArraySizes (TMPro.TMP_Text+TextProcessingElement[] textProcessingArray) (at ./Library/PackageCache/com.unity.ugui@ad30dfd93d36/Runtime/TMP/TextMeshProUGUI.cs:1755)
.
.
.

 

이 스택이면 거의 100% TMP(TextMeshPro) 쪽 폰트/머티리얼/스프라이트 에셋 참조가 빈(null) 상태라서, 레이아웃 계산 중(LayoutRebuilder)에 MaterialReference 생성할 때 NRE(NullReferenceException)가 남.

 

아래 순서대로 빠르게 점검/수정

  1. Window ▸ TextMeshPro ▸ Import TMP Essential Resources 실행
    • Assets/TextMesh Pro/Resources/에 TMP Settings.asset, 기본 폰트/머티리얼이 생성되어야 함.
  2. Project Settings ▸ TextMeshPro
    • Default Font Asset가 비어 있으면 지정.
    • Default Sprite Asset도 가능하면 지정.
  3. Assets/TextMesh Pro/Resources/ 폴더가 없다면 만들어지고, 여기 안(또는 Resources)에 위 에셋들이 있어야 함. (Addressables 쓰면 번들에 반드시 포함되도록 확인)

위와 같은 절차를 실행하여 빌드에 성공.

반응형