当启用了具有iOS组件的gameObject时,我们正在经历TextMeshPro上的崩溃。
我们在编辑器和Android版本上没有这个问题。
堆栈显示对GenerateTextMesh()组件的递归调用。
堆叠;
2018.4.36f1 (LTS)

发布于 2021-08-06 22:18:57
在调试插件内部的代码后,我们意识到在满足某些呈现条件时会执行递归调用,从而导致TextMeshPro进行一些调整,然后重新尝试呈现过程。(例如,如果文本不适合该区域,则如果启用“最佳匹配”,它将尝试调整大小。或者它会把文字的一部分干起来。这取决于组件上选定的设置)。
在我们的示例中,所有这些对GenerateTextMesh()的连续调用都是为了适应所需框中的文本( TextMeshPro在组件上绘制的黄色轮廓)而生成的。
我们的gameObject是这样的;

TextMeshPro组件包括一个RectTransform,您可以在那里定义组件的“大小”。这感觉有点奇怪,因为RecTransform是UI组件,我们处于呈现世界。
仔细观察组件,我们发现RectTransform上的大小太大了(大约20x5),但是我们需要填充的区域大约是3x1。为了使文本适应所需的区域,Margin设置在Advanced Settings上大量使用,因此组件大小约为20,边距之和约为17。
Rect变换分量;

和边缘;

在发现了使其适合的强制方法之后,我们将值更改为更“自然”的值,希望减少对GenerateTextMesh()的一些递归调用。一旦进行了更新,RectTransform组件如下所示;

毛边全部设为零;

在这些变化之后,坠机问题就解决了!
在重复调试和构建过程数小时后,我会自动回答这个问题,希望能为其他人节省一些时间:D
https://stackoverflow.com/questions/68687994
复制相似问题