項目中要使用動態加載,原計劃是生成WWW對象後,放到一個容器裏。由一個獨立線程輪詢容器裏的對象,若是www.isDone爲true時,回調一個接口把結果交給請求方。this
new Thread( new ThreadStart( XXX.run ) );
運行之後出現下面錯誤:spa
詳細錯誤:線程
get_isDone can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
code
提示只能在主線程中調用isDone方法對象
無奈,原來線程中輪詢的代碼放到MonoBehaviour的派生類中,利用update()方法被循環(每一楨)調用的特色來輪詢容器。blog
update是每一楨調用,這樣的輪詢間隔沒有必要,因此須要在update方法中加一deltaTime的累加,到達須要的步長時再執行業務代碼。updateStep爲0時則不執行延遲調用。接口
private updateStep = 0; void Update( if( 0 < updateStep ){ tm += Time.deltaTime; if( tm >= 2 ){ tm = 0f; update(); // Call custom update } } else { update(); // Call custom update } }