Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
Unity3d 统一-产生一个精灵作为一个精灵的孩子(在精灵之上)_Unity3d_Sprite - Fatal编程技术网

Unity3d 统一-产生一个精灵作为一个精灵的孩子(在精灵之上)

Unity3d 统一-产生一个精灵作为一个精灵的孩子(在精灵之上),unity3d,sprite,Unity3d,Sprite,我在做一些我认为应该很容易的事情时遇到了真正的问题,所以我可能做了一些非常错误的事情! 我有一个精灵在一个空间背景图像的顶部,它位于一个画布内,相机固定在画布上,可以四处移动。这是主要场景 我希望玩家能够在电台增加一个房间。这基本上是由另一个精灵组成的,它可以插入站精灵顶部的空间。我可以将精灵添加到图像中,并在“精灵”视图中的工作站顶部看到它,但在游戏运行时,我无法在“游戏”视图中看到它。我试过: 有一个画布,可以在上面实例化游戏项目,然后将图像设置为新的房间图像 将精灵添加到基站精灵中,确保

我在做一些我认为应该很容易的事情时遇到了真正的问题,所以我可能做了一些非常错误的事情! 我有一个精灵在一个空间背景图像的顶部,它位于一个画布内,相机固定在画布上,可以四处移动。这是主要场景

我希望玩家能够在电台增加一个房间。这基本上是由另一个精灵组成的,它可以插入站精灵顶部的空间。我可以将精灵添加到图像中,并在“精灵”视图中的工作站顶部看到它,但在游戏运行时,我无法在“游戏”视图中看到它。我试过:

  • 有一个画布,可以在上面实例化游戏项目,然后将图像设置为新的房间图像
  • 将精灵添加到基站精灵中,确保它们位于同一层,然后更改排序层和层中的顺序,我认为我没有正确地完成这项工作
房间精灵是车站的孩子,我就是不能让它在游戏中表现出来。对于我可能错过的事情,有人能提供一些建议吗


您不应该在UI画布中渲染整个游戏;它们是为用户界面设计的。为了管理
画布
对象中的渲染顺序,您必须重新排序继承权(这既慢又不必要)

发件人:

画布中的UI元素按其显示顺序绘制 等级制度。首先绘制第一个子对象,然后绘制第二个子对象, 等等如果两个UI元素重叠,则后面的一个将出现在屏幕上 在前面的上面

要更改显示在其他元素之上的元素,只需 通过拖动元素,对层次结构中的元素重新排序。订单可以 也可以通过在上使用这些方法来控制脚本 转换组件:
SetAsFirstSibling
setaslastssibling
,以及
SetSiblingIndex


相反,我建议您通读一遍,如果您不想通读整个教程,请至少看一看这一部分,了解游戏应该如何正确使用
SpriteRenderer
。它们会更容易管理。

这里没有看到任何明显的东西:我把一个精灵推到另一个精灵的孩子身上,孩子在上面渲染,而我不需要调整任何东西。只要“层中的顺序”是相同的值(或朝正无穷大方向更大),它就会在顶部渲染(如果是不同的层,则其基于层)。也就是说:精灵不是画布图像。精灵将始终在屏幕空间和摄影机空间画布后面渲染。@Nick自豪地说,您不应该在UI中这样做,您是否尝试过在世界空间中简单地使用精灵?如果是的话,那你为什么不这样做呢?这可能是因为我对画布缺乏了解。我把精灵放在画布上,因为相机固定在里面,可以在里面移动。主画布还包含我的HUD。基本上,我需要相机在一个特定的位置开始俯瞰车站。然后,玩家可以移动摄像机,俯视世界,同时将HUD元素固定到位。因此我使用画布。我应该尝试其他的方法吗?