My game works perfectly inside the Unity Editor, but after building for Android:
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
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.
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"); } }
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; } } }
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.
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
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.