【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
【Unity3D游戏开发】NGUI之多分辨率下完美分布式协同开发 (五)的更多相关文章
- C++开发安卓、windows下搭建Android NDK开发环境
1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...
- iTOP-4418开发板Qt系统下运行摄像头测试程序
编译环境:Ubuntu 12.04 交叉编译工具链:gcc 4.4.1 一.添加编译器的环境变量 打开~/.bashrc文件,修改环境变量,如下图: 修改完后,更新环境变量,使用命令”source ...
- Windows 下最佳的 C++ 开发的 IDE 是什么?
作者:渡世白玉链接:https://www.zhihu.com/question/19589089/answer/30312199来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- Git学习笔记(三)远程库(GitHub)协同开发,fork和忽略特殊文件
远程库 远程库,通俗的讲就是不再本地的git仓库!他的工作方式和我们本地的一样,但是要使用他就需要先建立连接! 远程库有两种,一个是自己搭建的git服务器:另一种就是使用GitHub,这个网站就是提供 ...
- [原创].NET 分布式架构开发实战之一 故事起源
原文:[原创].NET 分布式架构开发实战之一 故事起源 .NET 分布式架构开发实战之一 故事起源 前言:本系列文章主要讲述一个实实在在的项目开发的过程,主要包含:提出问题,解决问题,架构设计和各个 ...
- Unity3D游戏UI开发经验谈
原地址:http://news.9ria.com/2013/0629/27679.html 在Unity专场上,108km创始人梁伟国发表了<Unity3D游戏UI开发经验谈>主题演讲.他 ...
- Unity3D游戏开发从零单排(四) - 制作一个iOS游戏
提要 此篇是一个国外教程的翻译,尽管有点老,可是适合新手入门. 自己去写代码.debug,布置场景,能够收获到非常多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一 ...
- [Unity3D]Unity3D游戏开发之跑酷游戏项目解说
大家好,我是秦元培.我參加了CSDN2014博客之星的评选,欢迎大家为我投票,同一时候希望在新的一年里大家能继续支持我的博客. 大家晚上好.我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.c ...
- [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)
---------------------------------------------------------------------------------------------------- ...
随机推荐
- php课程---JavaScript改变HTML中的元素
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JAVA中I/O流
IO流分为输入流(InputStream)和输出流(OutputStream)两类 按流所处理的数据类型又可以分为字节流和字符流(用于处理Unicode字符数据)两类 字节流主要是由 InputStr ...
- where过滤字句
无条件为真 为假 别名不能直接用来当做查询来用 只能如此 下面这些语句是可以使用的,使用的是排序规则
- 【翻译】How To Tango With Django 1.5.4 第二章
2.开始吧! 准备好两个关键的安装包 Python version 2.7.5 Django version 1.5.4 2.1熟悉你自己的系统(我的是windows) 略 2.2安装软件 2.2.1 ...
- TypedValue.applyDimension 中dp和sp之间转化的真相
转载自http://www.cnblogs.com/xilinch/p/4444833.html 最近在看了许多关于dp-px,px-dp,sp-px,px-sp之间转化的博文,过去我比较常用的方式是 ...
- How to prevent SQL injection attacks?
In our earlier tutorial on SQL Injection, one way to have prevented the SQL injection attack was by ...
- LUA表克隆方法归纳
lua表克隆 将lua一个表, 克隆出一份为一个独立的另外一个表. 对于一个module, 如果在require之后,获得的表对象, 不能直接修改, 例如lua缓存此表, 但是多次逻辑执行, 都使用的 ...
- ASP.NET MVC中,怎么使用jquery/ajaxForm上传文件
ajaxForm插件最好选择:jquery forms plugin. 以下为示例: Ajax.BeginForm @using (Ajax.BeginForm("YourAction&qu ...
- java虚拟机内部介绍
一.介绍 java 的内存管理和垃圾回收在某种程度是同一个问题来着.对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free代码,不容易出现 ...
- .net mvc onexception capture; redirectresult;
need to set filtercontext.result=new redirectresult('linkcustompage'); done. so... ASP.NET MVC异常处理模块 ...