自己解決されていますが(解決していない気もしますが)、一応突っ込んでおきます。
どのようにして、「クリアされている」かを確認なさっていますか。
なんとなく、Projectビューで該当のテクスチャを選択して、Inspectorに表示されているテクスチャを見て判断なさっている気がしますが、であれば確認している方法が間違っています。
PlayModeが「Use Asset Database」の場合、AssetDatabase
クラスを使用して、直接アセットを読み込みますので、プログラム中にアセットに変更を加えると元のアセットにも影響を与えます。
それに対し「Use Existing Build」の場合、ビルドによって作られたAssetBundleから読み込まれます。
つまり、元のアセットとは厳密には別物であり、プログラム中に変更を加えても元のアセットには影響をお呼びしません。
試してみましょうか。
TextMeshProはよく知らないので、Materialで同じことをやってみます。
マテリアルを作成し、シーン上にSphereオブジェクトを作成し、そこに以下のスクリプトをアタッチしました。
cs
1using UnityEngine;
2using System.Collections;
3using UnityEngine.AddressableAssets;
4#if UNITY_EDITOR
5using UnityEditor;
6#endif
7
8public class Test01 : MonoBehaviour {
9 IEnumerator Start()
10 {
11 var op = Addressables.LoadAssetAsync<Material>("Assets/TestMaterial.mat");
12 yield return op;
13 Material material = op.Result;
14#if UNITY_EDITOR
15 Debug.Log($"asset path: {AssetDatabase.GetAssetPath(material)}.");
16#endif
17 // 元は白だったカラーを、赤に変更する。
18 material.color = Color.red;
19
20 // 読み込んだマテリアルを、Sphereに適用する。
21 Renderer renderer = this.GetComponent<Renderer>();
22 renderer.material = material;
23 }
24}
「Use Asset Database」の場合です。
「Use Existing Build」の場合です。
Inspectorに表示しているマテリアルの色は、前者は赤、後者は白(元のまま)と違いがありますが、実際にゲーム中に表示されているマテリアルは、どちらも赤くなっています。つまりプログラムの動作としては、どちらも変わらず、正常に動いていることになります。
ログに AssetDatabase.GetAssetPath
を用いてアセットのパスを出力しています。
前者は、
asset path: Assets/TestMaterial.mat.
というように、元のアセットのパスが返されますが、後者は、
というように、アセットパスが返されません。つまり、元のアセットとは別のものだということになります。
もし質問の内容の「クリアされているか」の確認をするのであれば、テクスチャを仮に画面に表示してみてはいかがですか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。