【问题标题】:How to animate an object from World canvas to Overlay Canvas如何将对象从世界画布动画到覆盖画布
【发布时间】:2019-08-01 23:41:37
【问题描述】:

我的游戏顶部有一个栏,其中包含一些对象和游戏分数,非常基本且常见。我有一些硬币(类似于马里奥的游戏),我想将它们从世界画布动画到位于画布叠加层中的栏顶部。

根据设计,Canvas Overlay 是在相机之后绘制的,所以它在我的世界画布之上,所以动画发生在正确的位置,但对象通过 在我的菜单后面,而不是在它上面。

我怎样才能做到这一点?要将我的世界画布中的对象动画到画布叠加层中的对象顶部?

这是我的“BAR”,后面的蓝色大四边形相当于我的硬币,我希望将它画在小条的顶部。

这是检查器,大四边形是对象“PieceOfShapeIClone”,它前面的条是“ShapeI”对象。由于“PieceOfShapeIClone”在下方,它应该呈现在之前的对象之上。

【问题讨论】:

  • 也许一旦收集了硬币,将其父级更改为覆盖画布?
  • 没有成功 R Astra,即使是 bar 对象的父级,它仍然呈现在对象后面。我可以在检查器中检查硬币在正确的层级中。
  • 尝试改变z位置或硬币的Sprite Renderer's Order in layer
  • 无论 Z 顺序如何,我都会得到相同的结果。也尝试过排序层,但也没有成功。
  • 您能否附上一张选择硬币游戏对象的屏幕截图,包括层次结构、场景视图(画布应该可见)和检查器?

标签: unity3d unity-ui unity-components


【解决方案1】:

“Screen Space - Overlay”对相机没有任何依赖,它呈现在一切之上。

解决方案是改用“屏幕空间 - 相机”,这将需要一个相机,并将画布的“深度”设置为相机,从而能够与场景中的对象进行交互。

希望这有助于帮助其他人解决同样的问题。

手册 -> https://docs.unity3d.com/Manual/class-Canvas.html

【讨论】:

    猜你喜欢
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多