如何在不同的屏幕上将切换/按钮放入滚动面板

时间:2015-08-22 07:47:43

标签: android unity3d resize

我正在尝试在Unity3d中制作游戏5.我现在要做的是制作一个可滚动的面板,其中包含切换/按钮。面板应适合屏幕上的框架并被遮盖,以便隐藏在图像框架下。这个概念在这个链接下: https://www.dropbox.com/s/9zxwx33orz46q60/Screenshot2.png?dl=0

正如你所看到的,我设法让切换填充面板,但不完全是应该的。我在面板上装有尺寸适合的尺寸,垂直和水平配件都设置为首选尺寸。我还将LayoutElement放在面板上,并将最小宽度和最小高度设置为200.有VerticalLAyoutGroup,只选中了“Height”。 面板在运行期间填充非常简单的预制件。它的首选宽度也设定为200.

所以这不会有什么问题,但是当我在Galaxy S5上运行它并看起来像这样:

https://www.dropbox.com/s/9zrv6kyf4n0ueam/Screenshot1.png?dl=0

所以问题是:如何让它始终适合面板?我正在改变许多不同的设置,我曾经设法做的是切换/预制件确实适合面板的宽度,但没有保持纵横比约为3(它们是平坦且不可读的。在其他情况下,面板部分重叠或完全。

请帮忙。

修改

我成功实现了这个目标:

https://www.dropbox.com/s/6w80qnuekqyrx96/Screenshot3.png?dl=0

设置为:

面板:

* Content Fitter:  horizontal - unconstrained, veertical - preferred size
* Child Force expand - both height and width checked
* Anchors and size stretched to fit scroll rect

1 个答案:

答案 0 :(得分:0)

我再次为某些事情奋斗了几天,最后在这里发布一个问题......并在几分钟内解决问题。

所以问题在于在调整预制件大小的同时保持纵横比。当水平调整大小以适合面板时,它也可能垂直调整大小,但未调整位置以补偿此更改。因此,需要的是根据面板宽度更改预制件的首选高度(不能使用切换宽度,因为它还没有正确(尚未调整大小))。在我为每个切换创建的代码中,我必须放置(3f是我的宽高比):

float width = contentPanel.GetComponent<RectTransform> ().rect.width;
newPower.GetComponent<LayoutElement> ().preferredHeight = width / 3f;

其他设置包括: 面板使用垂直配合作为优先,水平使用不受限制 切换使用宽高比适配器设置为宽度控制高度和宽高比为3