注意:看到还有好多人在关注本帖,本着对大家负责的态度,我建议大家不需要再用此分辨率适应方案了,我也有将近1年多没更新了。此分辨率适应是在NGUI还没有好的分辨率适应方案、还不存在UGUI的情况下写出来的分辨率适应方案。现在NGUI、UGUI的分辨率适应方案跟此方案差不多,并且功能做的更好。所以大家可以用UGUI或者NGUI的分辨率适应方案。谢谢大家的关注。(2016-1-26更新)
--------------------------------------------------------------------------------------------------------------- 你还在用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.0 版本1.0.1(1.增加了一个自动适应模式,能够按照变化最大的分辨率进行适应;2.去除了几个重复的描边方法;3.增加场景中若有多个Camera情况下可以分别适应不同Camera的功能 4.增加了显示当前分辨的开关,便于调试 5.修改了若干bug) 版本2.0(增加NGUI的层级分辨率适应:如果用的是NGUI的层级关系,那么只需要启用isNGUIHierarchy变量即可,其他的适应请看上面的教程) 版本2.1.0(1、修复了摄像机剪裁不准确的bug 2、完善了适应不同摄像机的机制 3、去除了旧的背景适应机制,增加了新的背景适应机制,背景适应更加准确,只需要把“MyBKAnchor”脚本拖到背景图片的对象上然后选择适应的类型即可)