예제 #1
0
파일: Timer.cs 프로젝트: Minebot17/Project2
    /// <summary>
    /// Создает новый таймер, который отсчитывает заданное время, затем вызывает метод.
    /// Второй метод вызывается каждый кадр, пока таймер работает
    /// </summary>
    /// <param name="name">Имя таймера</param>
    /// <param name="duration">Задержка таймера до вызова метода (-1 - бесконечность)</param>
    /// <param name="countOfRepeat">Число повторений (-1 - бесконечность)</param>
    /// <param name="parent">Родитель таймера. Если удалят родителя, то удалится и сам таймер. null для отключения</param>
    /// <param name="method">Метод, который будет вызываться</param>
    /// <param name="intervalMethod">Метод, вызывающийся каждый кадр (второй параметр - время рендра кадра, третий - сколько осталось времени, четвертый - общее время таймера)</param>
    /// <returns>Объект таймера</returns>
    public static ITimer StartNewTimer(string name, float duration, int countOfRepeat, GameObject parent, Action <ITimer> method, Action <ITimer, float, float, float> intervalMethod)
    {
        TimerSkin skin = storage.AddComponent <TimerSkin>();

        skin.Initialize(new IntervalTimer(), name, duration, countOfRepeat, method, intervalMethod, parent);
        return((ITimer)skin.GetTimer());
    }
예제 #2
0
파일: Timer.cs 프로젝트: Minebot17/Project2
    /// <summary>
    /// Создание кастомного таймера
    /// </summary>
    /// <param name="customTimer">Объект таймера</param>
    /// <param name="args">Аргументы для его инициализции</param>
    /// <returns>Объект таймера</returns>
    public static ITimer StartNewTimer(ITimer customTimer, params System.Object[] args)
    {
        TimerSkin skin = storage.AddComponent <TimerSkin>();

        skin.Initialize(customTimer, args);
        return(skin.GetTimer());
    }
예제 #3
0
파일: Timer.cs 프로젝트: Minebot17/Project2
        public virtual void Initialize(TimerSkin skin, params System.Object[] args)
        {
            if (isInited)
            {
                return;
            }

            this.skin     = skin;
            isInited      = true;
            timerName     = (string)args[0];
            duration      = (float)args[1];
            countOfRepeat = (int)args[2];
            method        = (Action <ITimer>)args[3];
            if (args[4] != null)
            {
                haveParent = true;
                parent     = (GameObject)args[4];
            }
            n = duration;
        }