首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Unity GetComponent() 回傳值為引用類型實例參考

     編輯:程式設計綜合問答

行為

  • T 為 **類別**(參考型別):回傳該元件在 GameObject 上的**同一實例參考**,修改其欄位會影響原物件。
  • T 為 **結構體**(值型別):回傳**複製品**,修改不影響原元件(但 Unity 內建元件皆為類別)。

代碼驗證


public class A : MonoBehaviour { public int i = 3; }
public class B : MonoBehaviour {
    A a;
    void Start() { a = GetComponent(); }
    void Update() {
        if (Input.GetKey(KeyCode.A)) {
            A a1 = new A(); a1.i = 4; // 新實例,與 a 無關
            // 若想修改同一元件:a.i = 4;
        }
    }
}

結論

GetComponent 回傳的是**既有元件的參考**,非新建物件。若需修改元件狀態,直接操作回傳的參考即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved