你还在用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这个脚本的前提下才能生效哈 )
注意:此分辨率适应不支持unity自带的GUI;在NGUI上用的时候不要用NGUI的层级关系,如果要用NGUI自带的层级关系请把UIRoot节点放大!
有问题或者改进建议、经验交流请加unity3D技术交流群
———— 麦兜
下面我来讲讲这几天编写的一套分辨率适应方式,适用于任何分辨率,并且简单易上手,还支持横屏和竖屏,只需要你填写最合适你UI的分辨率,当你切换到其他分辨率的时候UI自动适应(包括位置和大小),而且不会有任何UI拉伸现象。
第一步:首先你要把MyAnchorCamera这个脚本拖到你摄像机上,然后你会看到你的摄像机上附加了这个脚本,并且这个脚本下面有一些参数
图片:QQ截图20130114124235.png
下面我来教大家怎么设置这些参数:
Mode:最开始你要选择你要适应的是横屏还是竖屏(这个很重要),不同模式他的适应方式不一样,默认的是竖屏模式(Tall)。
Scale:这个参数不需要你设置,这个参数会根据你当前的分辨率设置好的。
suirableUI_width:这个参数很重要,你需要自己填写最适合你UI大小、位置的分辨率的宽,也就是你在哪个分辨率下编辑游戏的UI的大小位置最合适就填写哪一个分辨率。默认参数是0,当然你不填的话,你切换分辨率的时候你的UI大小不会改变的哈。
suirableUI_height:同上
所以你最开始要做的事情就是要把Mode和suirableUI_width、suirableUI_height三个参数填好(记得一定要先填哈)!
现在开始实战演练,我是在854 * 480分辨率横屏模式下进行编辑的(大家请注意分辨率和UI位置哈):
图片:QQ截图20130114125654.png
图片:QQ截图20130114125733.png
第二步:点击刚才附加到摄像机上那个脚本中的Create Anchor按钮
图片:QQ截图20130114130111.png
然后你会发现在摄像机下面会创建一个空对象Anchor,在这个对象上面会有一个脚本,这个脚本的作用其实就是对UI进行固定,也就是相当于对UI进行描点。
图片:QQ截图20130114130343.png
图片:QQ截图20130114130355.png
现在来说说这个空对象上面的MyUIAnchor这个脚本中的参数:
Anchor:这个参数是可选参数,里面有13中方法,分别多顶端的左、中、右,对中间的左、中、右,对底端的左、中、右,对四个角进行描点(也就是固定UI的位置)
offset:是UI的偏移变量,对UI位置进行微调参数
第三步:我们对UI进行描点(位置固定),我们创建5个Anchor空对象
图片:QQ截图20130114131124.png
然后改变每一个Anchor的模式,然后改一个我们能辨认的名字(记得一定要先选择模式哦,不然UI位置不好控制哈)
图片:QQ截图20130114131442.png
图片:QQ截图20130114131818.png
这些完成以后就把你要固定的UI拖到上面选好模式的空对象下面
图片:QQ截图20130114132057.png
图片:QQ截图20130114132115.png
下面我们来看看分辨率适应的效果如何(注意UI的位置和大小哦,我是在854 * 480分辨率下进行适应的哦):
480 * 320:
图片:QQ截图20130114132411.png
800 * 480:
图片:QQ截图20130114132438.png
1024 * 600:
图片:QQ截图20130114132528.png
960 * 680:
图片:QQ截图20130114132621.png
1280 * 800:
图片:QQ截图20130114132657.png
1024 * 768:
图片:QQ截图20130114132800.png
最后来一个不规则的分辨率910 * 613:
图片:QQ截图20130114132717.png
木有了,完成了,有木有很简单,有木有!
当然 作为福利,附件里面还有一个背景填充脚本!把BKAnchor这个脚本放到你要填充整个摄像机的背景图片上它会自动的帮你把摄像机填充满,注意背景会有一定程度的拉伸变形哈!
(先前那个附件 BKAnchor脚本整掉了一行代码,现在补上,大家看看还有没有错,这个脚本要在有 MyAnchorCamera这个脚本的前提下才能生效哈 )
注意:此分辨率适应不支持unity自带的GUI;在NGUI上用的时候不要用NGUI的层级关系,如果要用NGUI自带的层级关系请把UIRoot节点放大!
有问题或者改进建议、经验交流请加unity3D技术交流群
———— 麦兜