public void Init(bool istest, float m_Time) { Debug.Log("movieTime:" + m_Time); //时间默认值设定 allOfTheGameTime = 80; movieTime = m_Time > 3 ? m_Time : 3; readyTime = 5; gameTime = 20f; lastTime = 10f; minTime = movieTime + readyTime + gameTime + lastTime; startatTime = DateTime.MinValue; timeParam = 50; listenCurrentTime_Start = false; listenCurrentTime_MovieDone = false; listenCurrentTime_ReadyDone = false; listenCurrentTime_GameDone = false; listenCurrentTime_End = true; DEBUGFORMAT = "yyyy/MM/dd/HH:mm:ss.fff"; //参数获取 if (istest) { //----------------------------↓↓↓↓ 测试专用区域↓↓↓↓----------------------------------// //---------------------------- ↓↓↓↓↓↓ allOfTheGameTime = 69; DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo(); dtFormat.ShortDatePattern = DEBUGFORMAT; startatTime = Convert.ToDateTime("2017/03/17/12:21:00.000", dtFormat);//时间测试 ////王总专用口 startatTime = Convert.ToDateTime(DateTime.Now + TimeSpan.FromMilliseconds(0d), dtFormat); //---------------------------- ↑↑↑↑↑↑ //----------------------------↑↑↑↑ 测试专用区域↑↑↑↑----------------------------------// } else { _GetImportantValue_Time(); } endTime = startatTime + new TimeSpan(0, 0, (int)allOfTheGameTime); dateTimeNow = DateTime.Now; Debug.LogFormat("real -----> now :" + dateTimeNow.ToString(DEBUGFORMAT) + "\n"); Debug.LogFormat("real -----> startat :" + startatTime.ToString(DEBUGFORMAT) + "\n"); Debug.LogFormat("real -----> endtime :" + endTime.ToString(DEBUGFORMAT) + "\n"); Debug.Log("time param : " + timeParam); if (dateTimeNow >= endTime)//当前时间大于结束时间 { Debug.LogWarning("'current time' is out of 'end time'. end time is :" + endTime.ToString(DEBUGFORMAT) + "\n" + " but current time is :" + dateTimeNow.ToString(DEBUGFORMAT)); Debug.Log("Application.Quit()"); Application.Quit(); return; } else if (dateTimeNow >= startatTime && dateTimeNow < endTime)//当前时间 > 启动时间 { allOfTheGameTime = (float)(endTime - dateTimeNow).TotalSeconds; if (allOfTheGameTime >= minTime) { listenCurrentTime_Start = false; listenCurrentTime_MovieDone = true; listenCurrentTime_ReadyDone = false; listenCurrentTime_GameDone = false; //listenCurrentTime_End = false; Debug.LogError("'current time' > start time .and the residue time is enough.so play the game now."); gameTime = allOfTheGameTime - movieTime - readyTime - lastTime; startatTime = dateTimeNow; movieDateTimeDone = startatTime + new TimeSpan(0, 0, 0, 0, (int)(movieTime * 1000)); readyDateTimeDone = movieDateTimeDone + new TimeSpan(0, 0, 0, 0, (int)(readyTime * 1000)); gameDateTimeDone = readyDateTimeDone + new TimeSpan(0, 0, 0, 0, (int)(gameTime * 1000)); _startatTimeTime = 0; _movieDateTimeDoneTime = movieTime * 1000; _readyDateTimeDoneTime = (movieTime + readyTime) * 1000; _gameDateTimeDoneTime = (movieTime + readyTime + gameTime) * 1000; _endTimeTime = (movieTime + readyTime + gameTime + lastTime) * 1000; _Init_DebugShow(); _st = new System.Diagnostics.Stopwatch(); _st.Start(); if (StartGameEvent != null) { StartGameEvent(this, new EventArgs()); } Debug.Log("movieTime:" + movieTime); return; } else if (allOfTheGameTime < minTime) { MyProcess curentPorcess = new MyProcess(); MyProcess.ShowWindow(curentPorcess.GetMainWindowHandle(System.Diagnostics.Process.GetCurrentProcess().Id), 3); Debug.LogWarning("'current time' > start time .and the residue time is not enough.so wait time done and quit ."); movieTime = 0; readyTime = 0; gameTime = 0; lastTime = 0; listenCurrentTime_Start = false; listenCurrentTime_MovieDone = false; listenCurrentTime_ReadyDone = false; listenCurrentTime_GameDone = false; //listenCurrentTime_End = true; _startatTimeTime = 0; _movieDateTimeDoneTime = 0; _readyDateTimeDoneTime = 0; _gameDateTimeDoneTime = 0; _endTimeTime = 0; _st = new System.Diagnostics.Stopwatch(); _st.Start(); movieDateTimeDone = startatTime; readyDateTimeDone = startatTime; gameDateTimeDone = startatTime; _Init_DebugShow(); return; } } else if (dateTimeNow < startatTime) //正常情况 { Debug.Log("正常" + movieTime); gameTime = allOfTheGameTime - movieTime - readyTime - lastTime; if (gameTime < 10) { Application.Quit(); return; } movieDateTimeDone = startatTime + new TimeSpan(0, 0, 0, 0, (int)(movieTime * 1000)); readyDateTimeDone = movieDateTimeDone + new TimeSpan(0, 0, 0, 0, (int)(readyTime * 1000)); gameDateTimeDone = readyDateTimeDone + new TimeSpan(0, 0, 0, 0, (int)(gameTime * 1000)); _Init_DebugShow(); listenCurrentTime_Start = true; listenCurrentTime_MovieDone = false; listenCurrentTime_ReadyDone = false; listenCurrentTime_GameDone = false; //listenCurrentTime_End = false; _startatTimeTime = (float)(startatTime - dateTimeNow).TotalMilliseconds; _movieDateTimeDoneTime = _startatTimeTime + movieTime * 1000; _readyDateTimeDoneTime = _movieDateTimeDoneTime + readyTime * 1000; _gameDateTimeDoneTime = _readyDateTimeDoneTime + gameTime * 1000; _endTimeTime = _gameDateTimeDoneTime + lastTime * 1000; _st = new System.Diagnostics.Stopwatch(); _st.Start(); } //_StartKillExe(_endTimeTime); }