屏幕自适应
NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路。以下是我在开发过程中找到的一个比较方便的实现方法。
主要组件
1. UIAnchor
这个是用来确定控件在屏幕中的位置,另外有一篇教程专门讲它的功能,所有不会再赘述
2. UIStretch
这个是用来做缩放的组件。老版本的NGUI是集成在UIAnchor上的。新版本的UIStretch提供了4种缩放方式:
Horizontal:只缩放水平方向
Vertical:只缩放垂直方向
Bose:缩放两个方向
BasedOnHeight:基于高度等比缩放
然后基于这些我自己实现了一个
BasedOnWidth:基于宽度等比缩放
代码如下:
else if(style == Style.BasedOnWidth)
{
localScale.x = relativeSize.x * screenWidth;
localScale.y = relativeSize.y * screenWidth;
localScale.z = localScale.x;
}
这段代码添加在Update方法里面。为了能将UIStretch挂在UIPanel上面不出问题,所有将Z轴也缩放了。
自适应流程
1. 创建一个新的UI,将Anchor里面的UIAnchor调整的合适的位置,注意最好将Anchor设置为Bottom。
2. 将Camera的Size调节到默认屏幕大小。比如UI是以960*640分辨率制作的,那么将Camera的Size调整到960。
3. 在Panel上面添加一个UIStretch,模式选择BasedOnWidth。完成之后你可以看到你的Panel的Scale被修改到了当前屏幕的X方向分辨率大小。
4. 将UI控件添加到Panel上,调整位置,在Panel下的所有控件都会以X方向为标准做等比缩放来适应屏幕大小。
5. 添加一张作为背景的图,将UISprite的anchor设置为Bottom,添加之后你可以看到这个sprite可以在不同的分辨率下自适应了。
6. 以上一步添加的背景图作为参照物来摆放页面上的控件,这样不仅仅是大小,位置也同样会按照相同的模式进行等比缩放
7. 可以在第3步创建的Panel下面添加子Panel,子Panel不需要UIStretch(一般用来做Draggable Panel,否则没必要,会增加额外的Draw Call)
8. 如果某一些控件需要定位在屏幕上下左右中的某一角,可以单独给他添加一个UIAnchor,这个时候UIStretch只会缩放这个控件的大小,它的位置由他自己的UIAnchor控制了
如果还有什么问题,欢迎大家拍砖,喷碳酸盐水
分享到:
相关推荐
NGUI屏幕自适应
NGUI屏幕自适应,可用于2D和3D,2D屏幕自适应的方法参考我的博客文章:《NGUI-2D屏幕自适应》
2. 将Camera的Size调节到默认屏幕大小 3. 在Panel上面添加一个UIStretch,模式选择BasedOnWidth 4. 将UI控件添加到Pa
Unity3D 插件NGUI Next Gen UI 3.9.9and3.6.8 两个版本了
unity3d 插件 ngui 最新版 2.5.1
Unity3d插件NGUI
unity3d NGUI自适应屏幕.pdf
unity3d 插件 ngui 最新版 2.6.1e
Unity3D插件NGUI中运用Atlas Front和 制作Atlas和Font的步骤 并在unity3d使用
Unity3D使用最普遍的GUI插件NGUI,高效易用
Unity3d之NGUI简单计算器入门,可以作为简单的入门学习,具体步骤参照我博客http://blog.csdn.net/wyz365889/article/details/9326473
NGUI是Unity的一个插件,使用它来制作你的游戏UI必定将事半功倍。为什么这么说呢?首先我们说说GUI与NGUI的区别,GUI是Unity自带的绘制界面工具,它的成像原理是基于表层的,所以执行效率非常的低,并且没有提供复杂...
UNITY UI插件 NGUI 最新版3.7.4
Unity3D_NGUI实战教程
NGUI,比EZGUI更强大的Unity3D UI 制作插件。
NGUI Next-Gen UI 3.6.0.unitypackage NGUI Next-Gen UI 3.12.1(u5.6.5).unitypackage NGUI Next-Gen UI 2019.3.0.unitypackage NGUI Next-Gen UI v2018.3.0.unitypackage NGUI Next-Gen UI v2018.3.0c(u2018.3.0)....
NGUI Next-Gen UI的灵活性也非常高,它支持多种分辨率和屏幕比例,可以在不同的设备上自适应。开发者可以在不同的平台上使用相同的UI设计,而不必担心屏幕适配的问题。 另外,NGUI Next-Gen UI还提供了强大的动画...
在unity3d中使用ngui可方便导入2d图片进行编辑制作菜单血条等功能
NGUI是一款强大的UI系统框架,拥有内置定位系统,内置键盘等功能。NGUI是由C#语言编写,代码简洁明了,不包含任何DLL和外部资源
Unity 3D NGUI实战教程.pdf(大小84.4M),有出现10几M pdf 那才36页,原书有233页