2016-08-16 90 views
-1

我試圖用這個代碼從另一個腳本訪問布爾另一個對象的內部團結引用另外一個劇本,但我得到一個錯誤說試圖從另一個對象

「A字段初始不能引用非靜態場,方法或屬性UnityEngine.Component.GetComponent(System.Type)「

如何解決?我究竟做錯了什麼?

PlayerRaycast PlayerRaycast = GetComponent<PlayerRaycast>(); 

if (PlayerRaycast.canOpenDoor) { 
//script 
} 

回答

0

您需要選擇對象的腳本是在第一次:

public PlayerRaycast playerRaycast; 

void Start() { 
    playerRaycast = GameObject.Find("ObjectName").GetComponent<PlayerRaycast>(); 
} 

這裏有GameObject.Find

+0

我做到了,現在我得到這個錯誤UnityException的更多信息:您不允許在聲明一個變量時調用這個函數。 在沒有變量聲明之後將其移動到行。 如果您使用的是C#,請不要在構造函數或字段初始值設定項中使用此函數,而應將初始化移動到喚醒或啓動函數。 DoorDrag..ctor() – N1ckGreek

+0

更新了修復UnityException的答案。 – Okomikeruko

+1

雖然這是一個很好的答案,@Okomikeruko,請不要回答百萬次重複的問題 - 只需點擊關閉作爲一個騙局。 – Fattie