【问题标题】:Unity hides game objects when the camera rotates around them当相机围绕它们旋转时,Unity 会隐藏游戏对象
【发布时间】:2021-09-27 20:08:05
【问题描述】:

我混合了 3D 元素、2D 精灵和 3D TextMeshPro。

通常它们渲染得很好,但是当我围绕它们旋转相机时,一些元素会被隐藏或出现在其他元素的后面。

为什么会这样,我该如何解决?

【问题讨论】:

  • 隐藏了什么?
  • 在第一张图片中你可以看到4张棕色的动物皮,而在第二张图片中只有3张,它们并不相同。再看看数字 5 和其他的文字
  • 那是什么东西?
  • 试着让它们在前面稍微偏移。并且可以肯定,背景图像是层次结构中的第一项。
  • 它们是 2D 精灵和 3D textMeshPro。和 Ecco 我在图像中这样做,你可以看到这不起作用

标签: unity3d


【解决方案1】:

对于 2D 对象,例如精灵或 TextMeshPro 文本元素,渲染受排序顺序的影响。您可以为每个项目设置“排序层”,如果您需要在层内进一步排序,您可以设置“层中的顺序”值(较高的数字呈现在较低的数字前面)。

对于Sprite Renderer,在检查器中展开“附加设置”以查看排序层和层中的顺序。

对于 TextMeshPro - 文本,展开“额外设置”。

这可能就足够了。但是如果您需要在其他游戏对象中添加Sorting Layer和Order in Layer,您可以添加Sorting Group组件。

画布对 UI 有特殊用途,因此我建议您使用图层排序而不是将您的项目移动到画布中。

另见Unity manual: 2D Sorting

【讨论】:

    【解决方案2】:

    结论

    如果您要在 3D 空间中使用 2D 元素,请使用 Canvas

    如果只有一个 2D 元素,您可以在 3D 场景中使用 2D 对象,但如果是多个并且您需要将一个放在其他前面,则使用 UI 父元素和子 UI 元素(srites、text) 导致您不会在对象的层中失败

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2021-03-13
      • 1970-01-01
      相关资源
      最近更新 更多