示例#1
0
    /// <summary>
    /// <para>根据ID创建一个新PETimeTask</para>
    /// <para>callback:需要执行的方法</para>
    /// <para>delayTime:延迟时间</para>
    /// <para>PETimeUnit:时间单位(毫秒,秒,分,小时,天)</para>
    /// <para>count:循环次数(0时无限循环)</para>
    /// </summary>
    /// <param name="id"></param>
    /// <param name="callback"></param>
    /// <param name="delayTime"></param>
    /// <param name="timeUnit"></param>
    /// <param name="count"></param>
    /// <returns></returns>
    private PETimeTask CreatePETimeTask(int id, Action callback, float delayTime, PETimeUnit timeUnit = PETimeUnit.Millisecond, int count = 1)
    {
        switch (timeUnit)//根据PETimeUnit类型赋值
        {
        case PETimeUnit.Millisecond:
            break;

        case PETimeUnit.Second:
            delayTime *= 1000;
            break;

        case PETimeUnit.Minute:
            delayTime *= 1000 * 60;
            break;

        case PETimeUnit.Hour:
            delayTime *= 1000 * 60 * 60;
            break;

        case PETimeUnit.Day:
            delayTime *= 1000 * 60 * 60 * 24;
            break;

        default:
            Debug.Log("没有当前的计时单位");
            break;;
        }
        float      destTime = Time.realtimeSinceStartup * 1000 + delayTime; //由于默认为毫秒,因此×1000
        PETimeTask timeTask = new PETimeTask                                //新任务赋值
        {
            destTime  = destTime,
            callback  = callback,
            delayTime = delayTime,
            count     = count,
            id        = id
        };

        return(timeTask);
    }
示例#2
0
    /// <summary>
    /// <para>根据ID创建一个新PETimeTask</para>
    /// <para>callback:需要执行的方法</para>
    /// <para>delayTime:延迟时间</para>
    /// <para>PETimeUnit:时间单位(毫秒,秒,分,小时,天)</para>
    /// <para>count:循环次数(0时无限循环)</para>
    /// </summary>
    /// <param name="id"></param>
    /// <param name="callback"></param>
    /// <param name="delayTime"></param>
    /// <param name="timeUnit"></param>
    /// <param name="count"></param>
    /// <param name="updateModel"></param>
    /// <returns></returns>
    private PETimeTask CreatePETimeTask(int id, Action callback, Action <double> updateCallBack, float delayTime, PETimeUnit timeUnit = PETimeUnit.Second, int count = 1)
    {
        switch (timeUnit)//根据PETimeUnit类型赋值
        {
        case PETimeUnit.Second:
            break;

        case PETimeUnit.Minute:
            delayTime *= 60;
            break;

        case PETimeUnit.Hour:
            delayTime *= 60 * 60;
            break;

        case PETimeUnit.Day:
            delayTime *= 60 * 60 * 24;
            break;

        default:
            Debug.Log("没有当前的计时单位");
            break;;
        }
        double     destTime = GetTime() + delayTime; //由于默认为毫秒,因此×1000
        PETimeTask timeTask = new PETimeTask         //新任务赋值
        {
            destTime       = destTime,
            callback       = callback,
            delayTime      = delayTime,
            count          = count,
            id             = id,
            updateModel    = true,
            updateCallback = updateCallBack
        };

        return(timeTask);
    }