TextMeshPro子网格(精灵)脚本设置Maskable不更新问题(已修复)
TextMeshPro UI 精灵遮罩状态不更新问题解决
此问题属于TextMeshPro官方已知bug,目前已修复。直接更新你的TextMeshPro包到最新版本即可彻底解决该问题。
如果暂时无法更新,可尝试以下临时解决方案:
- 执行两次状态切换+强制刷新:先将
maskable设为true,调用textMeshPro.ForceMeshUpdate(true),再设为false并再次调用ForceMeshUpdate(true),确保子网格的遮罩状态同步更新 - 若上述方法无效,可临时销毁当前TextMeshPro对象,重新创建一个配置、文本内容完全一致的实例,重建后的元素子网格遮罩状态会正确跟随
maskable属性
原问题描述
我在ScrollView中有一列TextMeshPro(UI)元素,它们已设置遮罩且正常生效。在某一时刻,我需要将其中一个元素扩展到ScrollView外部,于是通过脚本将其.maskable设为false。由于其他元素仍需保持原有遮罩,我无法扩大ScrollView的尺寸。
目前,文本的普通部分已正确“取消遮罩”,但字符串中的精灵仍保持原有遮罩状态。当我回到编辑器(暂停),切换遮罩状态、逐帧操作时,精灵能正确取消/应用遮罩,但通过脚本在不同帧设置.maskable为false再设为true却无法解决问题。我也尝试过设置.text属性为包含精灵的新字符串,但这些精灵仍会被遮罩。
TextMeshPro整体只有一个maskable属性,但似乎用于包含精灵的子网格的“内部maskable属性”无法像包含普通文本的主网格那样通过脚本更新,不过在编辑器中切换时该子网格的“内部maskable属性”可以正常更新。
请问有什么方法可以更新子网格的遮罩状态?我已尝试ForceMeshUpdate,但无效,子网格仍使用未更新的maskable设置。
内容的提问来源于stack exchange,提问作者Gideon
相关产品推荐
相关产品推荐

