private void Update() { //按下Q键回放之前的操作 if (Input.GetKeyDown(KeyCode.R)) { startTimePos = Time.realtimeSinceStartup; StartCoroutine(LoadReolayDataFromFile()); timePos = 0; isReplay = true; } if (isReplay) { if (Time.realtimeSinceStartup - this.startTimePos >= replayInterval) { timePos++; startTimePos = Time.realtimeSinceStartup; ReplayObject curState = this.readyToReplayData.Peek(); if (curState.timePos == timePos) { target.transform.position = curState.vectorPos; curState = this.readyToReplayData.Dequeue(); } } } }
//读取记录位置文件的信息 IEnumerator LoadReolayDataFromFile() { string fileName = Application.dataPath + "/TextFile" + "/File.txt"; FileInfo fileInfo = new FileInfo(fileName); string lineData = string.Empty; int dataCount = 0; if (fileInfo.Exists) { using (StreamReader sr = fileInfo.OpenText()) { while ((lineData = sr.ReadLine()) != null) { dataCount++; replayEntity = new ReplayObject(); replayEntity.GetTimeAndPosition(lineData); readyToReplayData.Enqueue(replayEntity); } } } yield return(null); }
private void Update() { //timePos = Time.realtimeSinceStartup*100; string curData = string.Empty; if (Time.realtimeSinceStartup - startRecordTime >= recordInterval) { timePos++; curData = ReplayObject.TimePositionToString(timePos, target.transform); if (!cachePosition.Equals(target.transform.localPosition)) { WriteData(curData); this.cachePosition = this.target.transform.localPosition; //Debug.Log("1111111111"); } this.startRecordTime = Time.realtimeSinceStartup; } //按下E键停止记录 if (Input.GetKeyDown(KeyCode.E)) { Finished(); } }