Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity TextMeshPro UGUI对象隐藏在其他精灵后面_C#_Unity3d - Fatal编程技术网

C# Unity TextMeshPro UGUI对象隐藏在其他精灵后面

C# Unity TextMeshPro UGUI对象隐藏在其他精灵后面,c#,unity3d,C#,Unity3d,所以我有一个问题,听起来它应该是相对容易修复的,而且可能是,我只是把这一切都搞错了。我的游戏在所有精灵上使用排序层元素,这样它们就不会隐藏在其他精灵后面 我试图创建一个TextMeshPro UI对象(只是简单的文本),但由于我设置了这些排序层,它总是在其他精灵后面。我希望文本出现在所有精灵的前面。我已经试着设置一个脚本来实现这一点,但我不完全确定该脚本指向何处。大多数答案都是使用网格渲染器,但这似乎不适合我 任何建议都将不胜感激,谢谢 编辑:文本与层次结构中的另一个精灵分组 编辑2:根据Dar

所以我有一个问题,听起来它应该是相对容易修复的,而且可能是,我只是把这一切都搞错了。我的游戏在所有精灵上使用排序层元素,这样它们就不会隐藏在其他精灵后面

我试图创建一个TextMeshPro UI对象(只是简单的文本),但由于我设置了这些排序层,它总是在其他精灵后面。我希望文本出现在所有精灵的前面。我已经试着设置一个脚本来实现这一点,但我不完全确定该脚本指向何处。大多数答案都是使用网格渲染器,但这似乎不适合我

任何建议都将不胜感激,谢谢

编辑:文本与层次结构中的另一个精灵分组

编辑2:根据Darkonekt的要求,我将尝试添加更多的解释。 我发现可以复制的步骤:

  • 创建一个新项目(2D)后,添加TMPro资源(我通过向场景中添加一个Text Mesh Pro UI对象并仅导入基本要素来实现这一点)
  • 在场景中放置任何形式的精灵(确保它是画布上的子对象)
  • 添加Text Mesh Pro UI-Text对象,确保它是画布的子对象
  • 将画布的渲染模式设置为“屏幕空间-摄影机”,并将渲染摄影机设置为主摄影机
  • 您可能需要重新调整精灵的大小,确保它占据大部分屏幕
  • 回到精灵上,在精灵渲染器组件中,单击“排序层”,然后添加排序层
  • 你可以随意命名它,并确保它低于默认值
  • 再次在精灵上,将W排序层设置为“前”,文本应消失在其后面
  • 没有任何代码可显示,因为上面列出的值都不会被任何代码更改


    要使这项工作起作用,您必须确保以下几点:

  • 精灵变换位置的Z轴在检查器中为0
  • 画布排序层也位于前面(与精灵相同)。 当您将画布渲染模式设置为“屏幕空间-摄影机”时,此设置可用
  • 文本网格Pro对象的矩形变换的位置的Z轴为0
  • 这会帮助你达到你想要的结果

    发生这种情况的原因是,当您将精灵的排序层设置为“前”时,它将位于默认层上的所有内容之上


    由于画布现在设置为默认层,因此除非明确指定,否则画布中的所有内容也将定位在默认层中。

    为此,您必须确保以下几点:

  • 精灵变换位置的Z轴在检查器中为0
  • 画布排序层也位于前面(与精灵相同)。 当您将画布渲染模式设置为“屏幕空间-摄影机”时,此设置可用
  • 文本网格Pro对象的矩形变换的位置的Z轴为0
  • 这会帮助你达到你想要的结果

    发生这种情况的原因是,当您将精灵的排序层设置为“前”时,它将位于默认层上的所有内容之上


    由于画布现在设置为默认层,因此除非明确指定,否则画布中的所有内容也将放置在默认层中。

    您的精灵是精灵组件还是都是UI组件?如果它们都是UI组件,则必须注意层次结构中的顺序,因为Unity会按照它们在层次结构中的相同顺序绘制所有UI对象,层次结构中的最后一个UI元素会覆盖所有其他元素。您可以尝试修改画布层设置。我猜TextMeshPro是通过渲染完成的it@Windgate它们都在UI中,重新排序可能会起作用,但我忘了提到一些东西(我编辑了这个问题)。文本与一些其他精灵组合在一起。我想我可以试着创建一个空的对象,然后把文本放进去,然后重新排列。我们需要查看你的检查员的代码和图片,这样我们才能看到实际的问题是什么。。。。另外,如果你能上传一个可复制的示例,那就太好了。@Darkonekt好的,谢谢,我再次编辑了这篇文章,希望能让你更容易理解你的精灵精灵组件,或者它们都是UI组件?如果它们都是UI组件,则必须注意层次结构中的顺序,因为Unity会按照它们在层次结构中的相同顺序绘制所有UI对象,层次结构中的最后一个UI元素会覆盖所有其他元素。您可以尝试修改画布层设置。我猜TextMeshPro是通过渲染完成的it@Windgate它们都在UI中,重新排序可能会起作用,但我忘了提到一些东西(我编辑了这个问题)。文本与一些其他精灵组合在一起。我想我可以试着创建一个空的对象,然后把文本放进去,然后重新排列。我们需要查看你的检查员的代码和图片,这样我们才能看到实际的问题是什么。。。。另外,如果你能上传一个可复制的例子,那就太好了。@Darkonekt好的,谢谢,我再次编辑了这篇文章,希望能让它更容易理解。非常感谢你的帮助!我不得不把一些东西移回默认的排序层,但在那之后,它就像一个魔咒一样工作!非常感谢你的帮助!我不得不把一些东西移回默认的排序层,但在那之后,它就像一个魔咒一样工作!