private void StopRecording() { if (!_trackingCurrentLevel) { return; } _recorder.StopRecording(); string aDateStamp = System.DateTime.Now.ToString("dd-MM-yyyy"); string aTimeStampEnd = System.DateTime.Now.ToString("HH-mm-ss"); System.IO.Directory.CreateDirectory(Application.persistentDataPath + PATH_DIR); FileWriter.SetPath(string.Format("{0}{1}{2}_{3}_{4}.txt", Application.persistentDataPath, PATH_DIR, Application.loadedLevelName, aDateStamp, aTimeStampEnd)); // session data FileWriter.WriteLine(string.Format("{{ \"SessionData\": {{ \"Game\": \"{0}\", \"DateStamp\": \"{1}\", \"TimeStampStart\": \"{2}\", \"TimeStampEnd\": \"{3}\" }}, \"Events\": {{ ", Application.loadedLevelName, aDateStamp, _timeStampStart, aTimeStampEnd)); // events string[] lines = new string[_eventList.Count]; int i = 0; foreach (EvaluationEvent anEvent in _eventList) { lines[i] = string.Format("\"{0}\": {{ ", anEvent.Name); int ii = 0; foreach (KeyValuePair <string, string> aDataSet in anEvent.Data) { lines[i] += string.Format("\"{0}\": \"{1}\"", aDataSet.Key, aDataSet.Value); if ((ii + 1) < anEvent.Data.Count) { lines[i] += ","; } ii++; } lines[i] += "}"; if ((i + 1) < _eventList.Count) { lines[i] += ","; } i++; } _eventList.Clear(); FileWriter.WriteLines(lines); FileWriter.WriteLine(" }, \"PharusData\": { "); // coordinates System.Data.DataRow[] dataRows = _recorder.SelectFromTable(); lines = new string[dataRows.Length]; switch (Application.loadedLevelName) { default: for (int j = 0; j < lines.Length; j++) { lines[j] = string.Format("\"{0}\": {{ ", dataRows[j]["id"]); Vector2 pos = (Vector2)dataRows[j]["position"]; lines[j] += string.Format("\"GameTime\": \"{0}\", \"TrackRecordId\":\"{1}\", \"X\": \"{2}\", \"Y\": \"{3}\" }}", dataRows[j]["applicationTime"], dataRows[j]["trackRecordId"], pos.x, pos.y); if ((j + 1) < lines.Length) { lines[j] += ","; } } break; // case "FishFeast": // for(int j = 0; j < lines.Length; j++) // { // lines[j] = string.Format("\"{0}\": {{ ", dataRows[j]["id"]); // Vector2 pos = (Vector2)dataRows[j]["position"]; // lines[j] += string.Format("\"GameTime\": \"{0}\", \"TrackRecordId\":\"{1}\", \"X\": \"{2}\", \"Y\": \"{3}\", \"Status\": \"{4}\", \"Size\": \"{5}\" }}", dataRows[j]["applicationTime"], dataRows[j]["trackRecordId"], pos.x, pos.y, dataRows[j]["status"], dataRows[j]["size"]); // if((j+1) < lines.Length) // { // lines[j] += ","; // } // } // break; // case "TowerOfPower": // for(int j = 0; j < lines.Length; j++) // { // lines[j] = string.Format("\"{0}\": {{ ", dataRows[j]["id"]); // Vector2 pos = (Vector2)dataRows[j]["position"]; // lines[j] += string.Format("\"GameTime\": \"{0}\", \"TrackRecordId\":\"{1}\", \"X\": \"{2}\", \"Y\": \"{3}\", \"Team\": \"{4}\"}}", dataRows[j]["applicationTime"], dataRows[j]["trackRecordId"], pos.x, pos.y, dataRows[j]["team"]); // if((j+1) < lines.Length) // { // lines[j] += ","; // } // } // break; } _recorder.ClearTable(); FileWriter.WriteLines(lines); FileWriter.WriteLine("} }"); _trackingCurrentLevel = false; }