转#Unity_Gameobject和gameobject,Transform和transform的区别的关联

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

Gameobject是一个类型,所有的游戏物件都是这个类型的对象。
gameobject是一个对象, 就跟java里面的this一样, 指的是这个脚本所附着的游戏物件

 

?
1
2
3
4
5
6
7
8
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

 

?
1
2
3
4
5
6
7
8
9
10
11
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

	</div>
	<div class="postDesc">posted @ <span id="post-date">2017-05-27 15:47</span> <a href="https://www.cnblogs.com/tanrong/">RongT</a> 阅读(<span id="post_view_count">5245</span>) 评论(<span id="post_comment_count">0</span>)  <a href="https://i.cnblogs.com/EditPosts.aspx?postid=6913203" rel="nofollow">编辑</a> <a href="#" onclick="AddToWz(6913203);return false;">收藏</a></div>
</div>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值