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); } }
// Makes the data reference refer to a different data instance. public void SetData(TimeScaleData val) { data = val; }
private void Awake() { data = new TimeScaleData(); }