Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }