成都大红花-Unity3D游戏开发者

此博客主要记录我在Unity3D游戏开发中的一些经验和我对Unity3D游戏开发的一些理解。

福利来啦!!史上最简单效果最好的unity3D分辨率适应教程!

你还在用NGUI的分辨率适应方式吗?你还在用2DTooKit分辨率适应方式吗?如果你还用那么说明你已经OUT啦!
下面我来讲讲这几天编写的一套分辨率适应方式,适用于任何分辨率,并且简单易上手,还支持横屏和竖屏,只需要你填写最合适你UI的分辨率,当你切换到其他分辨率的时候UI自动适应(包括位置和大小),而且不会有任何UI拉伸现象。

第一步:首先你要把MyAnchorCamera这个脚本拖到你摄像机上,然后你会看到你的摄像机上附加了这个脚本,并且这个脚本下面有一些参数




下面我来教大家怎么设置这些参数:
Mode:最开始你要选择你要适应的是横屏还是竖屏(这个很重要),不同模式他的适应方式不一样,默认的是竖屏模式(Tall)。
Scale:这个参数不需要你设置,这个参数会根据你当前的分辨率设置好的。
suirableUI_width:这个参数很重要,你需要自己填写最适合你UI大小、位置的分辨率的宽,也就是你在哪个分辨率下编辑游戏的UI的大小位置最合适就填写哪一个分辨率。默认参数是0,当然你不填的话,你切换分辨率的时候你的UI大小不会改变的哈。
suirableUI_height:同上
所以你最开始要做的事情就是要把Mode和suirableUI_width、suirableUI_height三个参数填好(记得一定要先填哈)!


现在开始实战演练,我是在854 * 480分辨率横屏模式下进行编辑的(大家请注意分辨率和UI位置哈):




第二步:点击刚才附加到摄像机上那个脚本中的Create Anchor按钮




然后你会发现在摄像机下面会创建一个空对象Anchor,在这个对象上面会有一个脚本,这个脚本的作用其实就是对UI进行固定,也就是相当于对UI进行描点。



现在来说说这个空对象上面的MyUIAnchor这个脚本中的参数:
Anchor:这个参数是可选参数,里面有13中方法,分别多顶端的左、中、右,对中间的左、中、右,对底端的左、中、右,对四个角进行描点(也就是固定UI的位置)
offset:是UI的偏移变量,对UI位置进行微调参数


第三步:我们对UI进行描点(位置固定),我们创建5个Anchor空对象




然后改变每一个Anchor的模式,然后改一个我们能辨认的名字(记得一定要先选择模式哦,不然UI位置不好控制哈)



这些完成以后就把你要固定的UI拖到上面选好模式的空对象下面






下面我们来看看分辨率适应的效果如何(注意UI的位置和大小哦,我是在854 * 480分辨率下进行适应的哦):
480 * 320:




800 * 480:




1024 * 600:





960 * 680:





1280 * 800:






1024 * 768:






最后来一个不规则的分辨率910 * 613:







木有了,完成了,有木有很简单,有木有!
当然作为福利,附件里面还有一个背景填充脚本!把BKAnchor这个脚本放到你要填充整个摄像机的背景图片上它会自动的帮你把摄像机填充满,注意背景会有一定程度的拉伸变形哈!
(先前那个附件BKAnchor脚本整掉了一行代码,现在补上,大家看看还有没有错)


源码下载地址请到:https://game.ceeger.com/forum/read.php?tid=8297

有问题或者改进建议、经验交流请加unity3D技术交流群:3112035
                                                                                                                                     
                                                                                                                 

欢迎大家加入Unity技术交流群:3112035

                                                                                                                                                                                  ———— 大红花

                          



评论

热度(7)