2014-04-20 52 views
0

我將單獨的腳本分開來管理unity3d中的用戶輸入,因此角色本身不一定由用戶輸入控制,也可以由AI進行控制。在unity3d更新之前閱讀用戶輸入

問題是:我想讓其他邏輯腳本讀取來自此腳本InputManager的輸入,如InputManage ipt; ipt.walk ipt.jump。我如何保證在其他更新之前更新輸入。

回答

1

一般來說是一件好事(和一個設計)的選擇,不要依賴腳本執行順序。

順便說一下,可以強制某些腳本以特定順序更新。你可以修改Edit->Project Settings->Script Execution Order

+0

是的,我發現。順便說一句:我已經看到你的個人資料,請注意你是網絡和unity3d的專家。所以我有一個使用unity3d設計的遊戲客戶端,並且我從服務器接收消息。當我收到一條消息時,我有一個Dispatcher在它的Update中處理消息,它首先看到消息的類型,並根據消息的類型將消息分派給一個合適的處理函數,如'handle_login' ,'handle_something'什麼都不是從'MonoBehaviour'派生的類中定義的。通常,我需要在處理程序中實例化一個新的GameObject。 – zoujyjs

+0

但是'Handler'類包含的所有處理程序不是派生出來的'MonoBehaviour',我不能在其中實例化新的對象。如何在保持消息發送和處理框架的同時做到這一點? – zoujyjs

+0

GameObject.Instantiate是一種靜態方法。你可以從一個不是MonoBehavior的類中調用它,不是嗎? – Heisenbug