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

最新文章

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

热门文章

  1. Linux学习笔记---用户管理---组group
  2. [转]RamDisk导致远程桌面客户端无法启动问题
  3. Mysql VARCHAR(X) vs TEXT
  4. centos安装配置amoeba以及测试
  5. 一个支持FMX.Win框架的托盘控件
  6. Sublime Text3 常用快捷键
  7. openfire二次开发eclipse环境搭建
  8. JS之访问器
  9. LeetCode Count of Range Sum
  10. App软件开发的完整在线流程(一看就懂)