Unity Build Issue: TMP Text Missing and Scene Loading Works in Editor but Fails in Android Build


Environment

  • Unity 6000.4.9f1

Problem

My game works perfectly inside the Unity Editor, but after building for Android:

Issue 1: Scene Loading Fails

The scene flow is:

Loading Scene (startup)
    ↓
Main Menu
    ↓
Loading Screen
    ↓
Gameplay Scene

Inside the Editor:

  • All scenes load correctly.

  • Async loading works.

In Android Build:

  • Scene transitions fail.

  • The loading screen appears but never reaches the target scene.

  • No errors appear in the Editor.

  • The text is the loading scene doesn't how up


Issue 2: TextMeshPro Text Missing

TMP text appears correctly in the Editor.

After building:

  • TMP texts disappear.

  • Some UI elements are present, but TMP text is not rendered.

  • Reimporting TMP assets did not solve the issue.


Scene Loader Script

using UnityEngine; using UnityEngine.SceneManagement; public class SceneLoader : MonoBehaviour { public static int sceneToLoadIndex; // ===================================================== // LOAD BY NAME // ===================================================== public static void Load(string sceneName) { Scene targetScene = SceneManager.GetSceneByName( sceneName ); // Find build index manually for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++) { string path = SceneUtility.GetScenePathByBuildIndex(i); string name = System.IO.Path.GetFileNameWithoutExtension(path); if (name == sceneName) { sceneToLoadIndex = i; break; } } SceneManager.LoadScene("LoadingScene"); } // ===================================================== // LOAD BY INDEX // ===================================================== public static void Load(int sceneIndex) { sceneToLoadIndex = sceneIndex; SceneManager.LoadScene("LoadingScene"); } }

Loading Screen Script

using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using TMPro; using System.Collections; public class LoadingScreen : MonoBehaviour { public Slider progressBar; public TMP_Text progressText; private void Start() { StartCoroutine(LoadAsync()); } IEnumerator LoadAsync() { AsyncOperation operation = SceneManager.LoadSceneAsync( SceneLoader.sceneToLoadIndex ); operation.allowSceneActivation = false; while (!operation.isDone) { float progress = Mathf.Clamp01(operation.progress / 0.9f); progressBar.value = progress; if (progressText != null) { progressText.text = (progress * 100f).ToString("0") + "%"; } if (operation.progress >= 0.9f) { operation.allowSceneActivation = true; } yield return null; } } }

What I Tried

Scene Loading

Verified all scenes are added to:

File → Build Settings → Scenes In Build

Confirmed scene names match exactly.

Tested loading by both scene name and build index.

Made the Loading Scene not the first scene in Build Settings. (only the first Scene works and changing scenes fails)

Verified scene flow works correctly in the Editor.

Removed compile errors and rebuilt.


TextMeshPro

Imported TMP Essentials.

Reimported all TMP resources.

Checked that TMP components reference valid fonts.

Verified TMP text displays correctly in Editor.

Rebuilt the project after TMP reimport.

Deleted the library folder and repeated the previous steps


Additional Information

A few warnings appear during build:

Shader warning in 'ConvGeneric':
"TRANSPOSE_OUTPUT variants not supported with NON_UNIFORM_CONVGROUP_PER_OC"

This warning comes from:

Packages/com.unity.ai.inference/

Not sure if it is related.

missing TMP asset
Every time i reimported everything this stayed missing. The game runs fine in unity editor and I don't know does this effect the game after build.


Any suggestions on how to debug this further would be appreciated.

0
Jun 12 at 12:35 PM
User AvatarMd Labib Alam
#c##android#unity-game-engine#game-development#textmeshpro

No answer found for this question yet.