Unity3d 之 理解Gameobject ,gameObject,Transform,transform的区别和关联

Gameobject是一个类型,所有的游戏物件都是这个类型的对象。
gameobject是一个对象, 就跟java里面的this一样, 指的是这个脚本所附着的游戏物件
public class ShowSliderValue : MonoBehaviour
{
private GameObject obje; //定义GameObject类型的指针
void Start(){
Text lal =gameObject.GetComponent<Text> (); //通过gameObject获取到Text组件.
Debug.Log ("Text" + lal.text); //打印获取到组件的中的text的属性
}
}
Text lal =gameObject.GetComponent<Text> () 中不使用gameObject , 直接通过GetComponent<Text> (),也是可以的.
Transform是一个类,用来描述物体的位置,大小,旋转等等信息。
transform是Transform类的对象,依附于每一个物体。也是当前游戏对象的一个组件(每个对象都会有这个组件)
transform与gameObject
1>二者的含义
transform : 当前游戏对象的transform组件
gameobject :当前游戏对象的实例
2>两者的联系和区别
* 在unity中每个游戏对象都是一个gameobject. monodevelop中的gameobject就代表着本脚本所依附的对象. 每个gameobject都包含各种各样的组件,但从这点可以看出transform是gameobject的一个组件,控制着gameobject的位置,缩放,和旋转,而且每个gameobject都有而且必有一个transform组件
* gameobject.find用来获取场景中那个我们需要查找的对象(object). 而transform.find方法则是获取当前对象的子对象下我们需要获取的目标对象位置信息。
* 注意: 在update() 中尽量不使用find() 方法,影响性能.
3>gameobject.transform与transform.gameobject
* gameobject.transform,是获取当前游戏对象的transform组件.
所以在start函数中 gameobject.transform 和this.transform,指向的都是同一个对象。即:gameobject.transform == this.transform == transform
* transform.gameobject:可以这么理解为:获取当前transform组件所在的gameobect
所以在start()函数中transform.gameobject == this.gameobject == gameobect
所以他们可以无限的引用下去
意思就是。gameobject.transform == this.transform == gameobject.transform.gameobject.tranform == tranform.gameobect.transform
public class ShowSliderValue : MonoBehaviour
{
private GameObject obje; //定义GameObject类型的指针
private Transform trans;//定义Transform类型的指针 void Start(){
Debug.Log ("gameObject.name:" + gameObject.name);
Debug.Log ("gameObject.transform.gameObject.name:" + gameObject.transform.gameObject.name);
Debug.Log ("ThisGame.name:" + this.gameObject.name);
}
}

参考链接:http://blog.csdn.net/lxl_815520/article/details/53638481
Unity3d 之 理解Gameobject ,gameObject,Transform,transform的区别和关联的更多相关文章
- 【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)
GameObjectFindTransformFind查找游戏对象 前置条件 相关API 1 GameObjectFind 2 TransformFind 3 其他查找 实际测试 即使隐藏root节点 ...
- gameObject, vector and transform
调用其它组件中成员 通过GameObject(游戏物体). Base class for all entities in Unity scenes. 是Unity场景里面所有实体的基类. 可以理解为 ...
- Unity3d vector3.forward和transform.forward的区别!
原文连接: http://blog.csdn.net/kaluluosi111/article/details/17206655 在unity3d中有2个forward,一个是vector3.forw ...
- zoom和transform:scale的区别
小tips: zoom和transform:scale的区别 这篇文章发布于 2015年11月3日,星期二,00:52,归类于 css相关. 阅读 7876 次, 今日 8 次 by zhangxin ...
- css中zoom和transform:scale的区别
css中zoom和transform:scale的区别 关于zoom: 以前只是看到别人的代码中用过zoom,自己从未使用过,今天在探究ie7兼容inline-block时,发现里面提到了zoom.下 ...
- 小tips: zoom和transform:scale的区别
小tips: zoom和transform:scale的区别 转自 张鑫旭 前端大神 by zhangxinxu from http://www.zhangxinxu.com本文地址:http://w ...
- vector3.forward和transform.forward的区别!
http://blog.163.com/bowen_tong/blog/static/20681717420146654927791/ vector3.forward和transform.forwar ...
- Unity3d碰撞检测中碰撞器与触发器的区别
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对 ...
- 深入理解 sudo 与 su 之间的区别【转】
深入理解 sudo 与 su 之间的区别 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码.另外一个区别是其默认行为.sudo 命令只允许使用提升 ...
随机推荐
- NULL、0、nullptr的区别
某些时候,我们需要将指针赋值为空指针,以防止野指针. 有人喜欢使用NULL作为空指针常量使用,例如:int* p = NULL;. 也有人直接使用0值作为空指针常量,例如:int* p = 0;. ...
- Poj3696 The Lukiest Number
传送门 Solution 懒得写啦 Code #include<iostream> #include<cstdio> #include<cmath> #define ...
- bzoj 4184: shallot (线段树维护线性基)
题面 \(solution:\) 这一题绝对算的上是一道经典的例题,它向我们诠释了一种新的线段树维护方式(神犇可以跳过了).像这一类需要加入又需要维护删除的问题,我们曾经是遇到过的像莫对,线段树... ...
- mysql 架构~mgr具体细节分析
一 简介:今天咱们来聊聊mgr的具体实现细节 二 关于多点写入的锁冲突问题以及处理: certify模块主要负责检查事务是否允许提交,是否与其它事务存在冲突,如两个事务可能修改同一行数据.在单机系 ...
- jquery 学习(三) - 遍历操作
HTML代码 <p>1111</p> <p>1111</p> <p>1111</p> <p>1111</p&g ...
- Http协议的理解
作者技术有限,这篇博文都是结合网上的文章和自己的理解而写的,若存在错误,请无私指出,十分感谢! 协议,就是一种标准,即大家都要遵守的标准. 举个简单的例子:在中国,几乎人人都会讲普通话,不同地区的人有 ...
- Jetson tk1 安装 Intel 7260 无线网卡驱动
Jseton TK1上没有集成的无线网卡,开发板上有一个mini pci-e接口,可以插入Intel 7260这款继承了wifi和蓝牙功能的无线网卡: 该网卡实物如下图,在淘宝和Amazon上都可以买 ...
- DockerFile解析
⒈是什么? DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本文件. ⒉步骤 ①手动编写一个符合规范的DockerFile文件(编写) ②使用docker bui ...
- Dubbo服务超时
服务消费者引用服务提供者的服务时可能由于网络原因导致长时间未返回相应,此时大量的线程将会阻塞,引起性能下降等问题.可以通过引入服务超时来解决该问题 服务超时指服务在给定的时间内未返回相应将立即终止该请 ...
- 【逆向知识】动态调试技巧-C++代码逆向
1.C++类代码的特点 寄存器ECX传参时一般用作this指针(对象地址)或是计数器. 有ecx传参的call,是成员函数,构造函数,析构函数 能访问成员变量的函数都会有ecx传参 静态函数.全局函数 ...