unityui等比例缩放_Unity--UI操作方法(多种分辨率的UI)

在现在的游戏和应用程序中需要支持多种不同的分辨率,尤其是UI布局需要能够适应这种分辨率,Unity中的UI系统包括用于此目的的各种工具,可以通过各种方式进行组合。

四种屏幕的分辨率:纵向(640 x 960)和横向(960 x 640)的手机高清以及纵向(320 x 480)和横向(480 x 320)的手机SD。该布局最初以Phone HD纵向分辨率设置。

使用锚点以适应不同宽高比

UI元素默认情况下锚定在父矩形的中心。这意味着它们与中心保持恒定的偏移量。

如果使用此设置将分辨率更改为横向宽高比,则按钮甚至可能不再位于屏幕矩形内。

将按钮保留在屏幕内部的一种方法是更改​​布局,以使按钮的位置绑定到屏幕的相应角。可以使用“检查器”中的“锚定预设”下拉菜单,或在“场景视图”中拖动三角形的锚定手柄,将左上角按钮的锚定设置为左上角。最好在“游戏视图”中设置的当前屏幕分辨率是布局最初设计的分辨率时执行此操作,按钮位置看起来正确。

将按钮固定到它们各自的角后,将分辨率更改为其他纵横比时,它们将粘在它们上。

当屏幕尺寸更改为更大或更小的分辨率时,按钮也将保持锚定在它们各自的角上。但是,由于它们保持其原始尺寸(以像素为单位),因此它们可能会占据屏幕的更大或更小比例。根据你希望布局在不同分辨率的屏幕上表现的方式,这可能是不希望的。

在本操作方法中,我们知道Phone SD Portrait和Landscape的较小分辨率并不对应于物理上较小的屏幕,而仅对应于像素密度较低的屏幕。在这些低密度屏幕上,按钮的显示不应大于高密度屏幕上的按钮,而应以相同的大小显示。

这意味着按钮应变得与屏幕较小的百分比相同。换句话说,按钮的比例应遵循屏幕尺寸。这是Canvas Scaler组件可以提供帮助的地方。

屏幕尺寸缩放

可以将Canvas Scaler组件添加到根Canvas-一个带有Canvas组件的游戏对象,所有UI元素都是其子元素。通过GameObject菜单创建新的Canvas时,默认情况下也会添加它。

在“画布缩放器”组件中,可以将其UI缩放模式设置为“ 与屏幕尺寸一起缩放”。使用此缩放模式,您可以指定要用作参考的分辨率。如果当前屏幕分辨率小于或大于此参考分辨率,则会相应地设置Canvas的比例因子,因此所有UI元素都会与屏幕分辨率一起放大或缩小。

要注意的一件事:添加Canvas Scaler组件后,同样重要的是还要检查布局在其他纵横比下的外观。通过将分辨率设置回“电话高清”水平,我们可以看到按钮现在看起来比原来(过去)要大。

横向宽高比中较大的按钮的原因归因于“画布缩放器”设置的工作方式。默认情况下,它将宽度或当前分辨率与Canvas Scaler的宽度进行比较,结果将用作缩放因子以缩放所有内容。由于当前的960 x 640横向分辨率的宽度是肖像Canvas Scaler 640 x 960纵向宽度的1.5倍,因此布局会放大1.5倍。

该组件具有一个称为Match的属性,可以为0(宽度),1(高度)或两者之间的值。默认情况下,它设置为0,该值将当前屏幕宽度与Canvas Scaler宽度进行比较,如所述。

如果将Match属性设置为0.5,它将比较当前宽度与参考宽度以及当前高度与参考高度,并选择介于两者之间的比例因子。由于在这种情况下,景观分辨率宽1.5倍,但也短1.5倍,因此这两个因素会保持平衡,最终比例因子为1,这意味着按钮将保持其原始大小。

此时,布局通过使用适当的锚点和Canvas上的Canvas Scaler组件的组合来支持所有四个屏幕分辨率。

你可能感兴趣的:(unityui等比例缩放)