public TimeScaleProvider()
    {
        datas = new List <TimeScaleData>();

        List <TimeScaleLayer> layersList = Enum.GetValues(typeof(TimeScaleLayer)).OfType <TimeScaleLayer>().ToList();

        foreach (TimeScaleLayer layer in layersList)
        {
            TimeScaleData data = new TimeScaleData(layer);
            datas.Add(data);
        }
    }
 void UpdateTime()
 {
     Time.timeScale = m_timeScale.m_scale;
     if (m_timeScale.m_isInited)
     {
         m_timeScale.m_loopTime -= Time.deltaTime / m_timeScale.m_scale;
     }
     else
     {
         // Debug.Log("Start ScaleTime:" + Time.realtimeSinceStartup);
     }
     m_timeScale.m_isInited = true;
     if (m_timeScale.m_loopTime <= 0)
     {
         Time.timeScale = 1.0f;
         m_timeScale    = null;
         //Debug.Log("End ScaleTime:" + Time.realtimeSinceStartup);
     }
 }
 public void TimeScale(AnimationEvent animEvent)
 {
     try
     {
         TimeScaleData timeScale      = new TimeScaleData();
         string[]      timeScaleParam = animEvent.stringParameter.Split(new char[1] {
             ','
         });
         if (timeScaleParam.Length >= 2)
         {
             timeScale.m_scale    = float.Parse(timeScaleParam[0]);
             timeScale.m_loopTime = float.Parse(timeScaleParam[1]);
             m_timeScale          = timeScale;
             UpdateTime();
         }
     }
     catch (System.Exception e)
     {
         Debug.LogError("TimeScale:" + animEvent.stringParameter + "======error:" + e.Message);
     }
 }
示例#4
0
 // Makes the data reference refer to a different data instance.
 public void SetData(TimeScaleData val)
 {
     data = val;
 }
示例#5
0
 private void Awake()
 {
     data = new TimeScaleData();
 }