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

【Unity3D游戏开发】NGUI之多分辨率下完美分布式协同开发 (五)的更多相关文章

  1. C++开发安卓、windows下搭建Android NDK开发环境

    1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...

  2. iTOP-4418开发板Qt系统下运行摄像头测试程序

    编译环境:Ubuntu 12.04 交叉编译工具链:gcc 4.4.1 一.添加编译器的环境变量 打开~/.bashrc文件,修改环境变量,如下图:   修改完后,更新环境变量,使用命令”source ...

  3. Windows 下最佳的 C++ 开发的 IDE 是什么?

    作者:渡世白玉链接:https://www.zhihu.com/question/19589089/answer/30312199来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  4. Git学习笔记(三)远程库(GitHub)协同开发,fork和忽略特殊文件

    远程库 远程库,通俗的讲就是不再本地的git仓库!他的工作方式和我们本地的一样,但是要使用他就需要先建立连接! 远程库有两种,一个是自己搭建的git服务器:另一种就是使用GitHub,这个网站就是提供 ...

  5. [原创].NET 分布式架构开发实战之一 故事起源

    原文:[原创].NET 分布式架构开发实战之一 故事起源 .NET 分布式架构开发实战之一 故事起源 前言:本系列文章主要讲述一个实实在在的项目开发的过程,主要包含:提出问题,解决问题,架构设计和各个 ...

  6. Unity3D游戏UI开发经验谈

    原地址:http://news.9ria.com/2013/0629/27679.html 在Unity专场上,108km创始人梁伟国发表了<Unity3D游戏UI开发经验谈>主题演讲.他 ...

  7. Unity3D游戏开发从零单排(四) - 制作一个iOS游戏

    提要 此篇是一个国外教程的翻译,尽管有点老,可是适合新手入门. 自己去写代码.debug,布置场景,能够收获到非常多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一 ...

  8. [Unity3D]Unity3D游戏开发之跑酷游戏项目解说

    大家好,我是秦元培.我參加了CSDN2014博客之星的评选,欢迎大家为我投票,同一时候希望在新的一年里大家能继续支持我的博客. 大家晚上好.我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.c ...

  9. [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. Android课程---布局管理器之相对布局(二)

    这次示例代码是相对布局中兄弟组件之间,设置按钮的位置,难度:*****,一定要注意有同方向和反方向之分: 1.同方向 1)layout_alignLeft 同方向左对齐 2)layout_alignR ...

  2. HDU 1160 FatMouse's Speed(要记录路径的二维LIS)

    FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  3. C#7.0中有新特性

    以下将是 C# 7.0 中所有计划的语言特性的描述.随着 Visual Studio “15” Preview 4 版本的发布,这些特性中的大部分将活跃起来.现在是时候来展示这些特性,你也告诉借此告诉 ...

  4. ecshop增加新字段及相应编辑器

    一.在数据库添加字段,会手写的就后台添加,不会就进入phpmyadmin默认的就行.      这是通用的写法:(这里是增加类似商品描述的字段,其他字段自行更改) ALTER TABLE `ecs_g ...

  5. LightOj 1220 - Mysterious Bacteria (分解质因子x=b^p 中的 x 求最大的 p)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1220 题意:已知 x=bp 中的 x 求最大的 p,其中 x b p 都为整数 x = ...

  6. eNSP的使用

    1- 进入华为路由器界面配置ipThe device is running!####################################Nov  1 2016 23:39:24-08:00 ...

  7. js的实参是按值传递还是按引用传递

    1.如果是基本类型,则是按值传递 var str = 'one';function f(string) {    string = 'two';}f(str);console.log(str); // ...

  8. sql 时间差

    select * from Tickets where ( case when UnloadTime is null then datediff(hh,LoadTime,getdate()) else ...

  9. ubuntu 下安装 wxpython2.8

    echo "deb http://archive.ubuntu.com/ubuntu wily main universe" | sudo tee /etc/apt/sources ...

  10. 19. 星际争霸之php设计模式--迭代器模式

    题记==============================================================================本php设计模式专辑来源于博客(jymo ...