我可以让我的网格布局组的孩子不遵循层次结构吗? 统一

问题描述

可能是一个愚蠢的问题,但无论如何:我的库存(Unity 2D 2020)有一个网格布局,我希望这样当我拿起一个项目时,库存按游戏对象被激活的顺序显示项目。目前,如果我有一个层次结构顺序为苹果、橙子和柠檬的库存,它看起来像这样:

苹果|橙子|柠檬

如果我没有更多的橙子,它看起来像这样:

苹果|柠檬

但如果稍后拿起橙子,它会将柠檬推到第三位,而橙子将回到第二位而不是第三位。

有什么办法可以让网格布局按照项目被激活的顺序排列吗?

我希望这很清楚 - 我不擅长解释事情,对不起。

谢谢!

解决方法

据我所知,您希望通过对首先获得的物品进行排序来创建库存。

在 UI 设置中,您可以拥有父 GameObject,我们称其为“面板”,带有 Grid Layout Group 组件并对其进行预制。还为 Parent 制作另一个 Child GameObject 并将其称为“Container”并制作它的预制件。最后,你应该有苹果、橙子和柠檬的预制件。

Panel 将始终存在于层次结构中,但是当您有新项目时,您将 Instantiate 每个容器,例如,如果您获得 Apple,您将在 Panel 内实例化 Apple 容器。检查您是否已经实例化了苹果容器,如果没有,则只需添加苹果游戏对象。对其他项目也这样做。实例化的容器将始终位于 UI 中。

分享一些我做过的 UI 设置图片。 (这只是为了让你明白)

UI 设置,显示面板和容器

UI Setup,showing Panel and Container

面板组件配置

Panel Component configuration

容器组件配置

Container component configuration

输出窗口

Output window

如果您需要更多帮助,请告诉我。