拖动时Unity精灵不可见

时间:2017-06-17 05:17:19

标签: unity3d

我在2D游戏上使用Unity(我仍然非常业余)并且在使用Create-> UI-> Image添加新精灵时工作正常,每当我从我的资产中拖放图像时文件夹,它始终位于我为画布设置的背景后面,无论我是否使用更高的排序顺序,如果图像是画布的子画面,或者图层对于我的所有画布元素都是相同的(UI或默认)。尝试拖动动画时也一样。

我正在读某个地方,画布有点像另一个UI元素,并且图像必须是它的一个孩子才能显示在它上面,但即使我把它作为一个孩子拖到画布上,我也是仍然得到相同的结果。其他想法是关于使用世界空间模式,这似乎是为精灵修复它,但我不确定为什么。

有人可以解释发生了什么吗?我真的无法找到一个好的资源来解释它,这将有助于我理解。谢谢!

1 个答案:

答案 0 :(得分:0)

在屏幕空间模式下,“画布”始终在正常场景对象之上渲染(通过设计)。将继承自UnityEngine.Object的类型(例如sprite)放到Canvas层次结构中,不会将它们放置在屏幕空间画布上,而是放置在(2D)3D场景中(即使它们在Canvas层次结构中)。为了使图像符合Canvas视觉排序深度(层次结构中的顺序),您必须放置UnityEngine.UI.Image,然后向其添加资源精灵(如您所发现的)。此时,您只能针对其他Canvas UI对象控制Sprite资源的“深度”,并且该资源将始终位于其他基于场景的对象之上。

换句话说,Canvas及其UnityEngine.UI对象(在屏幕空间模式下)将始终在普通场景对象(即HUD)上渲染。在世界空间模式下,可以将每个Canvas对象(及其UnityEngine.UI子级)放置在3D场景中,就像它是普通场景对象一样(或多或少)。