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 ...
随机推荐
- kubernetes job的原理
job例子: apiVersion: batch/v1 #job的apiVersion kind: Job #资源类型为job metadata: labels: name: busybox name ...
- veu——引入iconfont图标
我这里是阿里的iconfont图标,如何下载请看下面这个博文 https://www.cnblogs.com/wangyang0210/articles/9248324.html 创建文件夹 在ass ...
- POJ 1125-Stockbroker Grapevine-最短路
裸最短路 /*--------------------------------------------------------------------------------------*/ // H ...
- python_getpass 模块的使用
可以实现输入用户密码的时候隐藏输入显示.更加安全. 默认自带Password: 的提示 如果自己指定提示内容就用自己的替换默认 import getpass passwd = getpass.getp ...
- 使用 windows server 2012 性能监视器
监控Windows server的内存.CPU.磁盘IO等性能 配置方法: 打开Aministrator Tools --> Performance Monitor Performances - ...
- 字符串数据结构模板/题单(后缀数组,后缀自动机,LCP,后缀平衡树,回文自动机)
模板 后缀数组 #include<bits/stdc++.h> #define R register int using namespace std; const int N=1e6+9; ...
- NOIp 2018 游记
Day0 啥都没做,记了一下 vimrc 和配置,然后搞了一下午的颓. 然后头有点晕乎乎的,早点洗澡去睡觉,在床上想了很多,但还是强制自己大脑放空,早点睡着了. Day1 由于去年的教训,今年我决定先 ...
- IISEXPRESS64位运行
调试时使用IISEXPRESS 64位.经网上查找这样开启
- LVS负载均衡集群(DR)
-----构建DR模式的LVS群集----- --client---------------------LVS------------------------WEB1----------------- ...
- 【Linux】Linux系统硬链接和软链接
在linux系统中有种文件是链接文件,可以为解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link). 查看lin ...