【发布时间】:2020-04-28 03:46:36
【问题描述】:
所以我遇到了一个听起来应该相对容易解决的问题,而且可能是这样,而我只是把这一切都弄错了。我的游戏在我的所有精灵上都使用了排序层元素,这样它们就不会隐藏在其他精灵后面。
我正在尝试创建一个 TextMeshPro UI 对象(只是简单的文本),但由于我设置了这些排序层,它总是在其他精灵之后。我希望文本出现在所有精灵的前面。我尝试设置一个脚本来执行此操作,但我不完全确定该脚本指向何处。大多数答案都是针对网格渲染器的,但这似乎对我不起作用。
任何建议都非常感谢,谢谢!
编辑:文本与层次结构中的另一个精灵分组
编辑 2:应 Darkonekt 的要求,我将尝试添加更多解释。
我发现要复制的步骤:
- 创建新项目 (2D) 后,添加 TMPro 资产(我通过将 Text Mesh Pro UI 对象添加到场景并仅导入基本要素来完成此操作。)
- 在场景中放置任何形式的精灵(确保它是画布的子对象)
- 添加 Text Mesh Pro UI -Text 对象,确保它是画布的子对象
- 将 Canvas 的渲染模式设置为“屏幕空间 - 相机”,并将渲染相机设置为主相机
- 您可能需要重新调整精灵的大小,确保它占据了大部分屏幕
- 回到精灵,在Sprite Renderer Component中,点击排序层,然后添加排序层
- 随意命名,并确保它低于默认值
- 再次在精灵上,将排序层设置为前面,文本应该已经消失在它后面。
没有任何代码可以显示,因为上面列出的值都没有被任何代码改变。
【问题讨论】:
-
你的精灵是 Sprite 组件还是它们都是 UI 组件?如果它们都是 UI 组件,则必须注意层次结构中的顺序,因为 Unity 以它们在层次结构中的相同顺序绘制所有 UI 对象,层次结构中的最后一个 UI 元素将覆盖所有其余元素。
-
您可以尝试修改画布层设置。我猜 TextMeshPro 是通过它渲染的
-
@Windgate 它们都在 UI 中,重新排列它们可能会起作用,但我忘了提一些东西(我编辑了问题)文本与其他一些精灵组合在一起。我想我可以尝试创建一个空对象并将文本放在那里并重新排列。
-
我们需要查看您的检查员的代码和图片,以便我们了解实际问题是什么......另外,如果您可以上传一个可复制的示例,那就太好了。
-
@Darkonekt 好的,谢谢,我再次编辑了这篇文章,希望能让它更容易理解