码迷,mamicode.com
首页 > 编程语言 > 详细

【Unity NGUI游戏开发之五】多分辨率下完美分布式协同开发

时间:2015-08-02 20:07:17      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:ngui   多分辨率   uianchor   协同   perfab数据丢失   

NGUI多分辨率下完美分布式协同开发:不同分辨率下相对于屏幕坐标的Perfab数据不再丢失

开发问题:

NGUI分布式开发中,用git管理资源,团队成员每人负责一个perfab,所有现对于屏幕大小的相对位置的perfab因为引用了perfab外的数据,导致perfab的Anchor锚点数据丢失,最后的perfab集成后,必须重新设置,导致开发成本大幅度提升。

原因分析:

因为Unity预制体的本身结构,导致预制体中引用非当前预制体中的任何对象,那么这个预制体中记录的引用数据会丢失。

案例:

我们需要一个 HP血条,任意分辨率下从屏幕的左上角,由屏幕外移动到屏幕内,我们将功能做成一个预制体,由队友实现功能,最后由Master合并到主场景中。

完美过程:

我们提前做成一个HPPerfab,并生成对应的perfab,添加到主场景中,队友只需要更新实现功能后提交,master更新后,功能效果完美复现,master无需做任何事情。

案例分析:

如果想做到完美过程,就需要prefab实现左右的功能,并保证perfab的引用数据不会丢失。

实现过程:

1.我们将指定的功能做成一个Perfab,我们称为PerfabRoot,提前放置到场景的制定位置,这个由Master操作,只有Master有权限操作场景。

2.如下图,我们将预制体中所有相对于Camer(屏幕)的相对位置,全部相对于预制体根节点PerfabRoot来设置,而不相对于UI Root或UI Root下的Camera对象设置,这样预制体内的数据全部引用的内部对象,数据也不会产生丢失问题。

如果所示,LeftTopCorner就是我们的PerfabRoot
技术分享

2.1 PerfabRoot的属性要定义为UI
2.2 PerfabRoot添加UI Anchor脚本,【UI Camra】属性设置为None
,这样运行时脚本会自动将显示当前对象的Camera添加到 【
UI Camera】属性中。
2.3 PerfabRoot需要添加UI Panel脚本,如果不加,所有现对于PerfabRoot的节点都无法设置Anchor

效果图:
技术分享

动画实现:
【Unity NGUI游戏开发之三】TweenPosition位移动画(二):相对于UIAnchor不同分辨率下的完美适配位移动画
http://blog.csdn.net/teng_ontheway/article/details/47070295

参考文章:
Setting the anchor property on an NGUI Widget?
http://hutonggames.com/playmakerforum/index.php?topic=8187.0

UIAnchor is still useful.Why UIWidget anchor target is Lost?
http://www.tasharen.com/forum/index.php?topic=12313.0

本人水平有限,如若有错误,请大家指正,谢谢。

版权声明:本文为博主原创文章,未经博主允许不得转载。

【Unity NGUI游戏开发之五】多分辨率下完美分布式协同开发

标签:ngui   多分辨率   uianchor   协同   perfab数据丢失   

原文地址:http://blog.csdn.net/teng_ontheway/article/details/47208341

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!