【Unity踩坑】解决TextMesh中缺失m_AtlasTextures of FontAsset的错误揭示

在使用了TextMesh以后,只要进入Play模式,就会出现下面的错误揭示。
MissingReferenceException: The variable m_AtlasTextures of FontAsset doesn’t exist anymore.
You probably need to reassign the m_AtlasTextures variable of the ‘FontAsset’ script in the inspector.
在这里插入图片描述

在查找了论坛里的贴子之后,解决方案很简单,把编辑器的语言恢复成English就可以了。
在这里插入图片描述

参考:
https://discussions.unity.com/t/missingreferenceexception-the-variable-m_atlastextures-of-tmp_fontasset-doesnt-exist-anymore/826562/16

如果瓦片地图遮挡了 TextMesh,你可以考虑通过设置 Sorting Layer 和 Order In Layer 属性来解决此问题。 首先,确保 TextMesh 和瓦片地图在不同的 Sorting Layer 。在 Unity ,Sorting Layer 可以控制渲染顺序,Sorting Layer 值越大的对象会被渲染在屏幕上面。 然后,你需要设置 TextMesh 的 Order In Layer 属性值比瓦片地图的 Order In Layer 属性值大。这意味着 TextMesh 会被渲染在瓦片地图的上层,从而避免了被瓦片地图遮挡的问题。 如果你的 TextMesh 和瓦片地图位于同一层,你可以使用 Sorting Group。将 TextMesh 和瓦片地图放置在同一 Sorting Group ,然后调整 Sorting Group 的 Order 属性值,确保 TextMesh 的 Order 值大于瓦片地图的 Order 值即可。这样,TextMesh 就会被渲染在瓦片地图的上层,避免被遮挡。 最后,如果以上方法都无法解决问题,你可以在代码动态调整 TextMesh 的 Sorting Layer 和 Order In Layer 属性,确保它们的值比瓦片地图大。例如,在 TextMesh 所在的脚本,你可以使用以下代码: ```csharp void Start() { // 获取 TextMesh 组件 var textMesh = GetComponent<TextMesh>(); // 设置 Sorting Layer 和 Order In Layer textMesh.GetComponent<Renderer>().sortingLayerName = "UI"; textMesh.GetComponent<Renderer>().sortingOrder = 2; } ``` 这样,你就可以在代码动态设置 TextMesh 的 Sorting Layer 和 Order In Layer 属性值,确保它们的值比瓦片地图大,从而避免被瓦片地图遮挡的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tealcwu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值