【Unity3D游戏开发】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不同分辨率下的完美适配位移动画
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
最新文章
- 最基本的session保存法,类似于默认的files方法
- Linux驱动设计——字符杂项设备
- easy ui 下拉级联效果 ,下拉框绑定数据select控件
- 【开源java游戏框架libgdx专题】-09-动画的使用
- SD卡中FAT32文件格式高速入门(图文具体介绍)
- 如何统一删除word中的超链接
- Python第一天-----简单登录验证
- CEOI2014 day1 task3 Question
- ural 1073.Square Country(动态规划)
- 关于自定义jar包(tomcat)的添加
- 纪念一下java学习之第一个get请求。
- 花了一年时间开发的TTF2FNT字库转换软件
- ASP.NET CORE的Code Fist后Models更改了怎么办?
- jquery实现点击控制div的显示和隐藏
- Code First
- 删除DataTable的指定行(Lambda)
- Linux命令——df/du/time
- Python3练习题系列(07)——列表操作原理
- powershell玩转litedb数据库-第二版
- 论 大并发 下的 乐观锁定 Redis锁定 和 新时代事务