示例#1
0
    /// <summary>
    /// Advanced invoke method to call with parameters.
    /// </summary>
    /// <param name="delay">Delay time in seconds.</param>
    /// <param name="repeatRate">Delay time in seconds until repeat.</param>
    /// <param name="method">Method to run after delay.</param>
    /// <param name="args">Method arguments.</param>
    public static void AdvancedInvokeRepeating
        (float delay, float repeatRate, Action <ChainArgs> method, params object[] args)
    {
        ChainArgs chainArgs = new ChainArgs(args);

        _instance.StartCoroutine(_instance.UnityCoroutine(delay, method, chainArgs));
    }
示例#2
0
    private IEnumerator UnityCoroutineRepeat(Action <ChainArgs> method, ChainArgs args, float delay, float repeatRate, float repeatTimes = -1)
    {
        yield return(new WaitForSeconds(delay));

        if (repeatTimes < 0)
        {
            while (true)
            {
                method(args);
                yield return(new WaitForSeconds(repeatRate));
            }
        }
        else
        {
            for (int i = 0; i < repeatTimes; i++)
            {
                method(args);
                yield return(new WaitForSeconds(repeatRate));
            }
        }
    }
示例#3
0
    private IEnumerator UnityCoroutine(float delay, Action <ChainArgs> method, ChainArgs args)
    {
        yield return(new WaitForSeconds(delay));

        method(args);
    }