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