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

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

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不同分辨率下的完美适配位移动画

参考文章: Setting the anchor property on an NGUI Widget? ?topic=8187.0

UIAnchor is still useful.Why UIWidget anchor target is Lost? ?topic=12313.0

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

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

上一篇【Unity游戏开发之四】GameObject.Find()、Transform.Find查找隐藏对象下一篇【Unity游戏开发之五】游戏目录结构之最佳实践和优化

顶0踩0

时光的消化是这样的缓慢。虽然这也仅仅是无处可说的委屈。而不是痛苦。

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

相关文章:

你感兴趣的文章:

标签云: