NGUI确实是非常棒的一个做界面的插件,比起U3D自带的GUI要好很多,当然也有一些不好之处,毕竟什么都不可能那么完美。
最近在用Unity写游戏使用NGUI遇到了一个很多人都在遇到的问题,就是关于屏幕自适应,谷哥度娘里面写关于适应屏幕的帖子很多,但是大多都是一样抄来抄去,都是说是Panel里面加个UIStretch里面加个 if 分支,什么OnWidth什么的,还要把UIAnchor的side放置在Bottom等等步骤,过于麻烦,而且效果也一般。
不知道大家在用最新的Unity的时候在UIStretch里面style参数有没有发现新添加了两个枚举
按照它的字面意思就是一个是“按保持的比例填充”和“适合保持内部比例”
其实可以想一想,安卓手机在屏幕分辨率上面有很多种,其长宽比例是不一样的,在制作游戏的时候如果保持位置的不变,难免要造成图片的不均等拉伸,所以用原有的比例会使画面看起来更和谐,多出来的部分也并不多,如果可以这样想,那么就可以进行后面的了。
1.首先在你的panel里面不要填充任何控件,如果有,可以先拖出来,
2.选中panel添加UIStretch脚本
3.将style选择最后一个FitInternalKeepingRatio
4.在Initial Size中填写你当前使用的屏幕大小。(比如你的游戏视窗是800*480的,就X 800,Y 480)
5.如果原先有控件了,再拖进来就可以了,如果没有,就可以在里面添加控件了。
在你选择修改游戏屏幕大小后,一定要运行一下才可以看到它调整过后的效果,可以看到比例是完全适应的,差别仅仅是多出来部分扩大了一些游戏场景而已。
操作起来很容易,也不需要多余的代码。