1
get_gameObject can only be called from the main thread.
訪問遊戲對象在主線程
是我得到我已經想通了與方式的事件處理程序在C#中實現做錯誤。
在我的Start方法我有
EventManager.Instance.AddListener(EVENT_TYPE.UPDATE, this);
然後在我的OnEvent處理方法我有
public void OnEvent(EVENT_TYPE Event_Type, Component Sender, object Param=null)
{
//Detect event type
switch (Event_Type)
{
case EVENT_TYPE.UPDATE:
Debug.Log(" UPDATE Timer event received Param = "+ Param);
foo(Param as string);
break;
}
}
然後我foo的方法
private void foo(string param)
{
Debug.Log("ASSERT foo gameObject" + gameObject);
所以gameObject
爲null,因爲foo
方法不在主線程中。那麼我該如何訪問gameObject
呢?
最近,我在我自己的Unity3d使用項目實施委託的事件系統。它允許您在希望它們被觸發的地方運行事件。我可以解釋我認爲如何解決你的問題,但這將是一種替代解決方案,而不是直接的答案。 – ChadF
什麼是'EventManager'?這看起來不像Unity內置的東西? –
你爲什麼在第一時間脫線?正如戴夫所說,你應該解釋你的'EventManager'是什麼。 –