项目中要使用动态加载,原计划是生成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 } }