NGUI-实例化问题
大家好,我是蜀云泉,我的博客存在的不足之处,希望大家包涵。
我在研究NGUI的时候发现一个问题。在NGUI下实例化物体,其坐标总是位于原点,也就是UIRoot的(0,0,0)处,困惑了好几天我才发现NGUI下实例化物体分两种情况。
第一种情况:NGUI下实例化GameObject物体。
这种情况下实例化物体是没有任何问题的,代码如下:
public Transform target;//定义要实例化精灵的位置处的父物体
public Transform flag;//定义要实例化的物体
void Update()
{
Transform MJ = (Transform)Instantiate(flag, target.position, Quaternion.identity);//实例化sprite,在target的位置
}
效果图:
第二种情况:NGUI下实例化Sprite精灵。
这种情况是值得一说的,因为这是NGUI的一个特有的情况。首先我们来明确一个概念,NGUI下的东西是不是都在UIRoot下面?答案是一定的。那么现在问题就来了,你在游戏中实例化的物体是sprite,这个sprite是不属于你现在的UIRoot的,所以NGUI会自动的把你实例化的sprite转移到现有的UIRoot下面(强制性吗?呵呵),这个过程就会默认的把你实例化的sprite的位置归为(0,0,0),所以无论你怎么设置其Position都没有用。
解决办法:手动的为sprite设置父物体。这个父物体是现有的UIRoot下的一个精灵,随便是谁,看你要求了。接下来上代码:
public Transform target;//定义要实例化精灵的位置处的父物体
public Transform flag;//定义要实例化的sprite
void Update()
{
Transform MJ = (Transform)Instantiate(flag.transform, target.position, Quaternion.identity);//实例化sprite,在target的位置
MJ.parent = target; //手动给MJ指定父物体,很重要
MJ.localScale = Vector3.one;//实例化的sprite的大小为(1,1,1)很重要
}
好了,现在来看一下效果:
总结:
感觉学习就是学习原理,只要你懂得原理了,问题也就不可怕了,它再花哨其本质还是一样的,这个问题困扰了我好几天,今天终于有时间研究了一下,懂了之后就写了这篇博客,希望可以帮助到一些学unity的朋友,再见。
NGUI-实例化问题的更多相关文章
- NGUI渲染流程
1 渲染流程 NGUI的渲染流程其实就是把Widget组件生成Mesh所需要的缓存数据,然后生成对应的DrallCall组合对应数据,生成渲染需要的Mesh数据,提交渲染. Widget(数据) UI ...
- NGUI 渲染流程深入研究 (UIDrawCall UIGeometry UIPanel UIWidget)
上图是一个简要的NGUI的图形工作流程,UIGeometry被UIWidget实例化之后,通过UIWidget的子类,也就是UISprit,UILabel等,在OnFill()函数里算出所需的Geom ...
- 【转】NGUI研究院之为什么打开界面太慢(十三)
NGUI打开界面太慢了,起初一直以为是unity的问题,最近经过我的全面测试我发现这和unity没有关系.一般一个比较复杂的界面大概需要150个GameObject 或者 UISprite .我用N ...
- NGUI 基础知识
UIRoot 管理 scalePixelPerfect : 像素匹配,图片不会被缩放,除非屏幕高度小于 Minimum Height 或者大于 maximum Height,如果那样的话,就使用 F ...
- NGUI 动态添加控件
本文链接地址: Unity3D NGUI动态创建按钮 本例仅以熟悉NGUI组件功能为目的,想快捷简便的创建按钮或其它游戏物体请参考 “Unity3D 动态实例化Prefab” 以动态创建服务器列表为例 ...
- 使用 NGUI 实现头顶文字及血条
以下是 NGUI HUD Text 实现的: 基本原理: 1. 在角色头顶绑一个点 Pivot,用于对齐 2. 因为界面总是覆盖在人物头顶信息的上面,所以将 UIRoot 分为2个 Panel:1) ...
- (转载)李剑英的CSLight入门指南结合NGUI热更新
原地址:http://www.xuanyusong.com/archives/3075 李剑英的CSLight入门指南文档撰写者:GraphicQQ: 1065147807 一. CSLIGHT 作者 ...
- CSLight研究院之学习笔记结合NGUI(一)
原地址:http://www.xuanyusong.com/archives/3088 这两天一直在研究CSLight,目前Unity热更新的方式有两种,一种是ulua这个网上的例子已经很多了.还有一 ...
- 关于NGUI中的自适应和对齐机制
原地址:http://blog.sina.com.cn/s/blog_62df69790101gy7t.html 1 关于美术效果图 美术出效果图总是基于某个固定尺寸.移动设备的分辨率却有太多不同的方 ...
- Unity3D基础学习 NGUI Example 7-Scroll View(Panel)制作固定包裹栏,点击传递参数显示物体
最终效果如下: 实现ScrollView主要是NGUI的三个脚本"UIDraggable Panel","UIGrid","UIDrag Panel ...
随机推荐
- Luogu4389 付公主的背包(生成函数+多项式exp)
显然构造出生成函数,对体积v的物品,生成函数为1+xv+x2v+……=1/(1-xv).将所有生成函数乘起来得到的多项式即为答案,设为F(x),即F(x)=1/∏(1-xvi).但这个多项式的项数是Σ ...
- DrawableAnimation小练习
DrawableAnimation,也就是帧动画,将图片一张张显示出来,从而形成动画的效果 先在项目文件夹下新建一个目录drawable,然后在里面新建一个xml文件,自定义文件名,我的叫my_ani ...
- C# 成员默认访问权限(public、private、protected、internal)
C# 成员默认访问权限(public.private.protected.internal) 来源 https://www.cnblogs.com/yezongjie/p/20181121Access ...
- 【HDU-6146】Pokémon GO(dp)
百度之星2017复赛1003 HDU-6146 Pokémon GO 题意 两行n列,只能到相邻格子,可以斜着.求遍历的方案数. 题解 dp[i]从一个点出发遍历长度i最后回到这一列的方案数 dp2[ ...
- module_loader.py
# few functions that make it possible to import functions # from jupyter notebooks as from modules; ...
- shell中定义变量用双引号和单引号以及不用引号的区别
1. 单引号 使用单引号的情况下,不管里面的是否有变量或者其他的表达是都是原样子输出 2. 双引号 如果其定义变量的时候使用双引号的话,则里面的变量或者函数会通过解析,解析完成后再输出内容,而不是把双 ...
- hdu6148 百度之星程序设计竞赛复赛 (数位dp)
Valley Numer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- Hyper-V:无法打开虚拟机XXX,因为虚拟机监控程序未运行
异常处理汇总-服务器系列:http://www.cnblogs.com/dunitian/p/4522983.html 异常处理汇总-开发工具 http://www.cnblogs.com/duni ...
- 省选前的JOI
RT,发现找不到题,于是又开了新坑 JOI特色:重思考,代码难度(相比NOI系列)基本没有 (省选前到处挖坑2333) JOI 2017 Final 焚风现象 差分,莫得了 (不是看到200ms就tm ...
- LOJ#2302 整数
解:发现这苟东西是个3千万位的二进制数......毒瘤吧. 拆位考虑,如果一个地方本来是1然后+1,就会把它和它前面连续的一段1变成0,并把第一个0变成1. 如果本来是0然后-1了,就会把它和它前面连 ...