123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- using UnityEngine;
- using System.Collections;
- namespace YLBattle
- {
- /// <summary>
- /// 时间比例校正.
- /// </summary>
- public class TimeScale : MonoBehaviour
- {
- bool isPause;
- float curTime;
- private static TimeScale mInstance;
- /// <summary>
- /// 暂停时间周期 引用计数
- /// </summary>
- float mPauseTimeCount;
- /// <summary>
- /// 旧的时间
- /// </summary>
- float mOldTime;
- /// <summary>
- /// 获取单键
- /// </summary>
- /// <returns>单键实例</returns>
- public static TimeScale Instance()
- {
- if (mInstance == null)
- {
- GameObject obj = new GameObject("TimeScale");
- mInstance = obj.AddComponent<TimeScale>();
- }
- return mInstance;
- }
- /// <summary>
- /// 更新
- /// </summary>
- void Update()
- {
- if (isPause)
- {
- return;
- }
- //float targetFrameRate = (float)Application.targetFrameRate;
- //if (targetFrameRate > 30)
- //{
- // Time.timeScale = 1;
- //}
- //else if (targetFrameRate <= 12)
- //{
- // Time.timeScale = .4f;
- //}
- //else
- //{
- //Time.timeScale = targetFrameRate / 30;
- //}
- }
- /// <summary>
- /// 继续重载
- /// </summary>
- public void Pause()
- {
- mOldTime = Time.realtimeSinceStartup;
- isPause = true;
- Time.timeScale = 0;
- mPauseTimeCount += 1;
- }
- /// <summary>
- /// 继续 播放
- /// </summary>
- public void Play()
- {
- mPauseTimeCount -= 1;
- if (mPauseTimeCount <= 0)
- {
- isPause = false;
- Time.timeScale = 1;
- mPauseTimeCount = 0;
- }
- }
- /// <summary>
- /// 获取isPause
- /// </summary>
- /// <returns></returns>
- public bool GetPause()
- {
- return isPause;
- }
- /// <summary>
- /// 强制取消暂停
- /// </summary>
- /// <returns></returns>
- public void PauseOver()
- {
- isPause = false;
- Time.timeScale = 1;
- this.mPauseTimeCount = 0;
- }
- }
- }
|