public void Record() { List <RecordTimer> timers = new List <RecordTimer>(); for (int i = 0; i < m_timers.Count; i++) { ITimer timer = m_timers[i]; if (timer.GetType() == typeof(RecordTimer)) { RecordTimer recordTimer = (RecordTimer)timer; recordTimer.recordDate = DateTime.Now; timers.Add(recordTimer); } } // timers -> json -> playeroprefs if (timers.Count <= 0) { return; } List <RecordTimerData> datas = new List <RecordTimerData>(); for (int i = 0; i < timers.Count; i++) { RecordTimerData data = new RecordTimerData(); data.TimerName = timers[i].name; var date = timers[i].recordDate; string dateString = date.Year + "|" + date.Month + "|" + date.Day + "|" + date.Hour + "|" + date.Minute + "|" + date.Second; data.RecordDate = dateString; data.RemainTime = timers[i].remainTime; datas.Add(data); } string recordTimers = SimpleJson.SimpleJson.SerializeObject(datas); PlayerPrefs.SetString("RecordTimers", recordTimers); }
public void Read() { string recordTimers = PlayerPrefs.GetString("RecordTimers"); if (string.IsNullOrEmpty(recordTimers)) { return; } IList <RecordTimerData> datas = SimpleJson.SimpleJson.DeserializeObject <List <RecordTimerData> >(recordTimers); // playerprefs - > json - > list<records> for (int i = 0; i < datas.Count; i++) { var data = datas[i]; float recordTime = 0; string[] dates = data.RecordDate.Split('|'); DateTime recordDate = new DateTime(int.Parse(dates[0]), int.Parse(dates[1]), int.Parse(dates[2]), int.Parse(dates[3]), int.Parse(dates[4]), int.Parse(dates[5])); float elapsedTime = (DateTime.Now - recordDate).Seconds; if (data.RemainTime > elapsedTime) { recordTime = data.RemainTime - elapsedTime; } IRecordTimer record = new RecordTimer(data.TimerName, recordTime, false); if (recordTime.Equals(0)) { record.ready = true; } AddTimer(record); } }