2014-02-07 32 views
-1

我剛剛看到Unity3D警報寫着使用SETACTIVE()團結

this.gameObject.active = BackdropVisible;

已經過時了。

  • 警告CS0618:'UnityEngine.GameObject.active」已過時:
  • `GameObject.active已經過時了。
  • 使用GameObject.SetActive(),GameObject.activeSelf或GameObject.activeInHierarchy。'

昨天我只寫了,但顯然它現在是舊聞了;)

但是,設置

this.gameObject.SetActive(true);

正常工作;但

this.GameObject.SetActive(true);

沒有。區別在於大寫字母「G」 - 如錯誤信息中所用

任何人都可以清除混淆嗎? (我只是剛剛開始C#昨天)我猜小寫版本是一​​個變量,文檔中的是一個對象;但對於未經訓練的眼睛,他們是同一件事。顯然他們不是。

+0

http://docs.unity3d.com/Documentation/ScriptReference/Component-gameObject.html http://docs.unity3d.com/Documentation/ScriptReference/GameObject.html – jparimaa

回答

7

GameObject與大寫字母G是類型,併產生編譯器錯誤,因爲在這種情況下沒有意義。

this.gameObject構件字段的MonoBehaviors引用GO腳本被附接到的GameObject實例。

+0

感謝 - 這比尋找更好總是像立體聲指令一樣閱讀的文檔。 –