zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    jquery datatable后台分页、移动端隐藏列、自定义列显示格式
    今日热门文章
    深入理解STL源码 系列文章
    LED显示屏通讯协议 2
    LED显示屏通讯协议 1
    定制的小键盘输入数字显示的LED计分显示屏
    Sql语句中的LIKE关键字中通配符以及Escape关键字
    Virtual Box扩展虚拟硬盘的问题
    选择腾讯云部署应用的要慎重了,私有网络阉割,可靠性变得难以确定!
    rabbitmq 重置
  • 原文地址:https://www.cnblogs.com/tanrong/p/6913203.html
Copyright © 2011-2022 走看看