zoukankan      html  css  js  c++  java
  • [原]unity中WWW isDone方法只能在主线程中调用

    项目中要使用动态加载,原计划是生成WWW对象后,放到一个容器里。由一个独立线程轮询容器里的对象,如果www.isDone为true时,回调一个接口把结果交给请求方。

    new Thread( new ThreadStart( XXX.run ) );

    运行以后出现下面错误:

    详细错误:

    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.

    提示只能在主线程中调用isDone方法

    无奈,原来线程中轮询的代码放到MonoBehaviour的派生类中,利用update()方法被循环(每一桢)调用的特点来轮询容器。

    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
        }
    }
  • 相关阅读:
    hdu 2490 队列优化dp
    poj 1836 LIS变形
    hdu 3410 单调栈
    51nod 1437
    51nod 1215 单调栈/迭代
    51nod 1102 单调栈
    51nod 1272 思维/线段树
    51nod 1279 单调栈
    SpringMVC收藏
    今天接触枚举类型,感觉是C里面应该才有的东西
  • 原文地址:https://www.cnblogs.com/basecn/p/3264294.html
Copyright © 2011-2022 走看看