AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > Unity3D

简单有效的Unity3D分辨率适应教程

51自学网 2014-05-24 http://www.51zixue.net

你还在用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脚本整掉了一行代码,现在补上,大家看看还有没有错,这个脚本要在有MyAnchorCamera这个脚本的前提下才能生效哈)

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

———— 麦兜

版本1.0.0MyCameraAnchor.zip

版本1.0.1MyCameraAnchor1.0.1.unitypackage(1.增加了一个自动适应模式,能够按照变化最大的分辨率进行适应;2.去除了几个重复的描边方法;3.增加场景中若有多个Camera情况下可以分别适应不同Camera的功能 4.增加了显示当前分辨的开关,便于调试 5.修改了若干bug)


版本2.0MyCameraAnchor2.0.unitypackage(增加NGUI的层级分辨率适应:如果用的是NGUI的层级关系,那么只需要启用isNGUIHierarchy变量即可,其他的适应请看上面的教程)


版本2.1.0MyCameraAnchor2.1.0.unitypackage(1、修复了摄像机剪裁不准确的bug 2、完善了适应不同摄像机的机制 3、去除了旧的背景适应机制,增加了新的背景适应机制,背景适应更加准确,只需要把“MyBKAnchor”脚本拖到背景图片的对象上然后选择适应的类型即可)


建议使用电驴(eMule)下载分享的资源。

说明
:本教程来源互联网或网友分享或出版商宣传分享,仅为学习研究或媒体推广,51zixue.net不保证资料的完整性。
 
上一篇:Unity3D中定时器的使用  下一篇:【Unity C#编程】制作星星(四)