Gameobject是一個類型,全部的遊戲物件都是這個類型的對象。
gameobject是一個對象, 就跟java裏面的this同樣, 指的是這個腳本所附着的遊戲物件java
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> (),也是能夠的.node
Transform是一個類,用來描述物體的位置,大小,旋轉等等信息。
transform是Transform類的對象,依附於每個物體。也是當前遊戲對象的一個組件(每一個對象都會有這個組件)ide
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.gameobjectthis
* gameobject.transform,是獲取當前遊戲對象的transform組件.
因此在start函數中 gameobject.transform 和this.transform,指向的都是同一個對象。即:gameobject.transform == this.transform == transformspa
* transform.gameobject:能夠這麼理解爲:獲取當前transform組件所在的gameobect
因此在start()函數中transform.gameobject == this.gameobject == gameobect.net
因此他們能夠無限的引用下去指針
意思就是。gameobject.transform == this.transform == gameobject.transform.gameobject.tranform == tranform.gameobect.transformorm
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