【问题标题】:NGUI can't bring sprite to front in UnityNGUI 无法在 Unity 中将精灵置于最前面
【发布时间】:2023-03-09 06:24:01
【问题描述】:

我在 NGUI 中有一个精灵小部件,无论我在编辑器中更改的深度如何,它都无法显示在前面:

注意橙色面板是 NGUI 的滚动视图。

这是我想要设置在最前面的精灵的检查器设置:

这里是检查器设置,它与我想在它前面制作的上述精灵重叠。

这是底部面板设置

【问题讨论】:

  • 我使用 NGUI 已经很长时间了,但我想我也可以在这方面提供帮助。您能否截取其前面对象的 Inspector 的屏幕截图,然后将其发布。现在,对要发送到前面的对象的 Inspector 进行屏幕截图,然后也将其发布。我只是想比较他们的设置。
  • @Programmer 等我来做 :D
  • @Programmer 已经粘贴了inspector设置的截图
  • 这很有趣,因为它应该适用于当前设置。将“Sprite (1)”对象的 z 轴更改为 4。如果有任何更改,请告诉我。当我说 Z 轴时,我指的是位置 (P) 不是 (R) 或 (S)。
  • Z 轴没有任何运气,但如果我将“背景”从层次结构中的“底部面板”中拖出,那么事情会起作用:(

标签: unity3d ngui


【解决方案1】:

我终于通过

解决了这个问题
  • 添加另一个面板
  • 将添加的面板设置在原点前面
  • 使新添加面板的子画面成为子画面

而最终的层次结构是这样的:

NGUI论坛的this link有帮助

在此引用:

“深度”属性用于确定使用相同图集的同一面板中的小部件的绘制顺序。如果您使用不同的地图集或使用动态字体的标签,请将小部件在变换的 Z 上向前移动,将它们移近相机 (-Z)。如果您使用不同的面板,请将要放在前面的面板的变换调整为较低的负 Z 值 (-Z)。如果您可以管理它,我强烈建议您坚持使用一本地图集,这将使您的生活变得更加轻松。

我发a youtube video 来解释我到目前为止所取得的成就。

【讨论】:

    【解决方案2】:

    在我看来一切都很好,但它似乎不适合你。还有另一种解决方法。

    UIPanel 上,将 Render Q 更改为 Explicit,然后使用 z 轴对您的 UISprite 进行排序。我的意思是z 位置 (P) 而不是 (R) 或 (S)

    例如,将“Sprite (1)”对象的 z 轴更改为 2,然后将“背景”对象的 z 轴更改为 1。如果这不起作用,请更改周围的值。

    请确保 Sprite 位于面板下方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      相关资源
      最近更新 更多