首页 文章

Unity - 将精灵生成为精灵的子项(在精灵之上)

提问于
浏览
0

我正在做一些我认为应该很容易的事情,所以我可能做错了!我在空间背景图像上面有一个精灵,它位于画布中,相机固定在画布上并可以移动 . 这是主要场景 .

我正处于我希望玩家能够为车站添加房间的地步 . 这基本上由另一个精灵组成,它可以插入站精灵顶部的空间 . 我可以将精灵添加到图像中并在精灵视图中在工作站顶部看到它,但是在游戏运行时我无法在游戏视图中看到它 . 我试过了:

  • 有一个可以实例化gameoject的画布,然后将图像设置为新的房间图像 .

  • 将精灵添加到基站精灵,确保它们在同一层上,然后更改排序层和层中的顺序,我认为我没有正确完成此操作 .

房间精灵是车站的孩子,我无法让它在游戏中显示 . 任何人都可以就我可能错过的事情提出任何建议吗?

Rooms are empty but need a room sprite to be added by player

Sprite added and can be seen in game view

Nothing seen during runtime

1 回答

  • 1

    您不应该在UI Canvas中渲染整个游戏;它们是专为UI设计的 . 为了管理 Canvas 对象中的渲染订单,您必须重新排序您的层次结构(这既慢又不必要) .

    来自Unity's Canvas docs

    “画布”中的UI元素按照它们在“层次结构”中显示的顺序绘制 . 首先绘制第一个孩子,然后绘制第二个孩子,依此类推 . 如果两个UI元素重叠,则后一个元素将显示在前一个元素的顶部 . 要更改哪个元素出现在其他元素之上,只需通过拖动它们来重新排序层次结构中的元素 . 也可以通过在Transform组件上使用这些方法从脚本控制顺序:SetAsFirstSibling,SetAsLastSibling和SetSiblingIndex .

    相反,我建议通过Unity's Rogue-Like Tutorial,如果你不想完成整个教程,至少要看一下Sorting Layers部分,以了解游戏应如何正确使用 SpriteRenderer . 他们将更容易管理 .

相关问题