private void LogEyeOpen() { loggingManager.Log("BlinkLog", "Event", "EyeOpening"); loggingManager.Log("BlinkLog", "BlinkNo", blinkNo); loggingManager.Log("BlinkLog", "DurationClosed_s", duration); loggingManager.SaveLog("BlinkLog"); loggingManager.ClearLog("BlinkLog"); }
// Start is called before the first frame update void Start() { // Find the logging Manager in the scene. loggingManager = GameObject.Find("Logging").GetComponent <LoggingManager>(); // Tell the logging manager to store a piece of data into a column called "CoolData". // For SQL connections, make sure that the label matches the label in your JSON file. loggingManager.Log("MyLabel", "Highscore", highscore); // You can also send a dictionary with multiple data entries at once. Dictionary <string, object> otherData = new Dictionary <string, object>() { { "SoundVolume", soundvol }, { "PlayerName", player } }; loggingManager.Log("MyLabel", otherData); // Tell the logging manager to save the data (to disk and SQL by default). loggingManager.SaveLog("MyLabel"); // After saving the data, you can tell the logging manager to clear its logs. // Now its ready to save more data. Saving data will append to the existing log. loggingManager.ClearLog("MyLabel"); // If you want to start a new file, you can ask loggingManager to generate // a new file timestamp. Saving data hereafter will go to the new file. loggingManager.NewFilestamp(); }
/** * make sure to save and clean up logs when the game is quit */ private void OnApplicationQuit() { // tell the logging manager to save the data (to disk and SQL by default). loggingManager.SaveLog("TeleportData"); // after saving the data, you can tell the logging manager to clear its logs. // now its ready to save more data. Saving data will append to the existing log. loggingManager.ClearLog("TeleportData"); }
private SequenceData CheckCapturedKeys() { //if (currentKeySequenceLogs["Event"].Count == 0) { // no sequence available, dont do anything. //return; //} SequenceData sequenceData = new SequenceData(); sequenceData.sequenceValidity = SequenceValidity.Accepted; sequenceData.sequenceSpeed = SequenceSpeed.Fast; sequenceData.sequenceComposition = SequenceComposition.Correct; sequenceData.sequenceType = keyboardSequence; sequenceData.sequenceWindowClosure = sequenceWindowClosure; sequenceData.sequenceNumber = sequenceNumber; sequenceData.keyCount = currentKeySequenceLogs["Event"].Count; // populate currentKeySequenceLogs with WrongKey values. for (int j = 0; j < currentKeySequenceLogs["Event"].Count; j++) { Debug.Log("Populating for Key: " + currentKeySequenceLogs["KeyCode"][j].ToString()); currentKeySequenceLogs["KeyOrder"].Add("NA"); currentKeySequenceLogs["KeyType"].Add("WrongKey"); currentKeySequenceLogs["ExpectedKey1"].Add("NA"); currentKeySequenceLogs["ExpectedKey2"].Add("NA"); } for (int i = 0; i < keysToPress.GetLength(0); i++) { if (i >= currentKeySequenceLogs["KeyCode"].Count) { break; } // for each i, we need to check if the first key pressed, matches either keysToPress[i,0] or [i,1] Debug.Log("Checking Key: " + currentKeySequenceLogs["KeyCode"][i]); Debug.Log("i = " + i + ", keysToPress: " + keysToPress.GetLength(0) + " currentKeySequenceLogs: " + currentKeySequenceLogs["KeyCode"].Count); if (currentKeySequenceLogs["KeyCode"][i] == keysToPress[i, 0].ToString() || currentKeySequenceLogs["KeyCode"][i] == keysToPress[i, 1].ToString()) { currentKeySequenceLogs["KeyOrder"][i] = i.ToString(); currentKeySequenceLogs["KeyType"][i] = "CorrectKey"; currentKeySequenceLogs["ExpectedKey1"][i] = keysToPress[i, 0].ToString(); currentKeySequenceLogs["ExpectedKey2"][i] = keysToPress[i, 1].ToString(); } else { // if any keys do not match the desired key, reject it. sequenceData.sequenceComposition = SequenceComposition.Mistyped; sequenceData.sequenceValidity = SequenceValidity.Rejected; currentKeySequenceLogs["KeyOrder"][i] = "NA"; currentKeySequenceLogs["KeyType"][i] = "WrongKey"; currentKeySequenceLogs["ExpectedKey1"][i] = keysToPress[i, 0].ToString(); currentKeySequenceLogs["ExpectedKey2"][i] = keysToPress[i, 1].ToString(); } } // If the sequence was played too slowly, reject it. Debug.Log("sequenceTime_ms: " + sequenceTime_ms + ", sequenceTimeLimit_ms: " + sequenceTimeLimit_ms); if (sequenceTime_ms > sequenceTimeLimit_ms) { sequenceData.sequenceSpeed = SequenceSpeed.Slow; sequenceData.sequenceValidity = SequenceValidity.Rejected; } // If the sequence contains too many keys, reject it. if (currentKeySequenceLogs["Event"].Count > keysToPress.GetLength(0)) { sequenceData.sequenceComposition = SequenceComposition.Mistyped; sequenceData.sequenceValidity = SequenceValidity.Rejected; } else if (currentKeySequenceLogs["Event"].Count < keysToPress.GetLength(0)) { sequenceData.sequenceSpeed = SequenceSpeed.Slow; sequenceData.sequenceValidity = SequenceValidity.Rejected; } for (int j = 0; j < currentKeySequenceLogs["Event"].Count; j++) { currentKeySequenceLogs["SequenceNumber"].Add(sequenceData.sequenceNumber.ToString()); currentKeySequenceLogs["SequenceComposition"].Add(System.Enum.GetName(typeof(SequenceComposition), sequenceData.sequenceComposition)); currentKeySequenceLogs["SequenceSpeed"].Add(System.Enum.GetName(typeof(SequenceSpeed), sequenceData.sequenceSpeed)); currentKeySequenceLogs["SequenceValidity"].Add(System.Enum.GetName(typeof(SequenceValidity), sequenceData.sequenceValidity)); currentKeySequenceLogs["SequenceType"].Add(System.Enum.GetName(typeof(SequenceType), sequenceData.sequenceType)); currentKeySequenceLogs["SequenceWindowClosure"].Add(System.Enum.GetName(typeof(SequenceWindowClosure), sequenceData.sequenceWindowClosure)); } currentKeySequenceLogs["Event"].Add("KeySequenceStopped"); currentKeySequenceLogs["Date"].Add(System.DateTime.Now.ToString("yyyy-MM-dd")); currentKeySequenceLogs["Timestamp"].Add(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff")); currentKeySequenceLogs["KeyCode"].Add("NA"); currentKeySequenceLogs["SequenceTime_ms"].Add(sequenceTime_ms.ToString()); currentKeySequenceLogs["TimeSinceLastKey_ms"].Add(timeSinceLastPress_ms.ToString()); currentKeySequenceLogs["KeyOrder"].Add("NA"); currentKeySequenceLogs["KeyType"].Add("NA"); currentKeySequenceLogs["SequenceNumber"].Add(sequenceData.sequenceNumber.ToString()); currentKeySequenceLogs["SequenceComposition"].Add(System.Enum.GetName(typeof(SequenceComposition), sequenceData.sequenceComposition)); currentKeySequenceLogs["SequenceSpeed"].Add(System.Enum.GetName(typeof(SequenceSpeed), sequenceData.sequenceSpeed)); currentKeySequenceLogs["SequenceValidity"].Add(System.Enum.GetName(typeof(SequenceValidity), sequenceData.sequenceValidity)); currentKeySequenceLogs["SequenceType"].Add(System.Enum.GetName(typeof(SequenceType), sequenceData.sequenceType)); currentKeySequenceLogs["SequenceWindowClosure"].Add(System.Enum.GetName(typeof(SequenceWindowClosure), sequenceData.sequenceWindowClosure)); currentKeySequenceLogs["ExpectedKey1"].Add("NA"); currentKeySequenceLogs["ExpectedKey2"].Add("NA"); for (int k = 0; k < currentKeySequenceLogs["Event"].Count; k++) { loggingManager.Log("KeyLog", "Timestamp", currentKeySequenceLogs["Timestamp"][k]); loggingManager.Log("KeyLog", "Event", currentKeySequenceLogs["Event"][k]); loggingManager.Log("KeyLog", "KeyCode", currentKeySequenceLogs["KeyCode"][k]); loggingManager.Log("KeyLog", "SequenceTime_ms", currentKeySequenceLogs["SequenceTime_ms"][k]); loggingManager.Log("KeyLog", "TimeSinceLastKey_ms", currentKeySequenceLogs["TimeSinceLastKey_ms"][k]); loggingManager.Log("KeyLog", "KeyOrder", currentKeySequenceLogs["KeyOrder"][k]); loggingManager.Log("KeyLog", "KeyType", currentKeySequenceLogs["KeyType"][k]); loggingManager.Log("KeyLog", "ExpectedKey1", currentKeySequenceLogs["ExpectedKey1"][k]); loggingManager.Log("KeyLog", "ExpectedKey2", currentKeySequenceLogs["ExpectedKey2"][k]); loggingManager.Log("KeyLog", "SequenceNumber", currentKeySequenceLogs["SequenceNumber"][k]); loggingManager.Log("KeyLog", "SequenceComposition", currentKeySequenceLogs["SequenceComposition"][k]); loggingManager.Log("KeyLog", "SequenceSpeed", currentKeySequenceLogs["SequenceSpeed"][k]); loggingManager.Log("KeyLog", "SequenceValidity", currentKeySequenceLogs["SequenceValidity"][k]); loggingManager.Log("KeyLog", "SequenceType", currentKeySequenceLogs["SequenceType"][k]); loggingManager.Log("KeyLog", "SequenceWindowClosure", currentKeySequenceLogs["SequenceWindowClosure"][k]); } loggingManager.SaveLog("KeyLog"); loggingManager.ClearLog("KeyLog"); sequenceNumber++; sequenceData.keySequenceLogs = new Dictionary <string, List <string> >(currentKeySequenceLogs); /*foreach (string key in currentKeySequenceLogs.Keys) * { * keySequenceLogs[key].AddRange(currentKeySequenceLogs[key]); * Debug.Log("Key: " + key + ", Count: " + keySequenceLogs[key].Count.ToString()); * }*/ /*foreach (string key in currentKeySequenceLogs.Keys) * { * Debug.Log("Key: " + key + ", Count: " + currentKeySequenceLogs[key].Count.ToString()); * currentKeySequenceLogs[key].Clear(); * }*/ CreateNewSequenceLogs(); return(sequenceData); }
// Update is called once per frame void Update() { if (gameState == GameState.Preparation) { } else if (gameState == GameState.CountDown) { countDownTimer -= Time.deltaTime; if (countDownTimer < 1) { gameState = GameState.Playing; StartCoroutine(SampleLogger()); populationManager.StartInfection(currentLevel.numberOfInfectedOnStart); onGameCountDown.Invoke((int)countDownTimer); onGameStateChanged.Invoke(gameTime, gameState); Dictionary <string, object> eventLog = new Dictionary <string, object>() { { "Event", "Game" + System.Enum.GetName(typeof(GameState), gameState) }, { "EventType", "GameEvent" }, { "LevelPlayID", levelPlayID }, }; eventLogger.Log("Event", eventLog); } else if ((int)countDownTimer != prevTime) { Dictionary <string, object> eventLog = new Dictionary <string, object>() { { "Event", "Countdown" + ((int)countDownTimer - 1).ToString() }, { "EventType", "GameEvent" }, { "LevelPlayID", levelPlayID }, }; eventLogger.Log("Event", eventLog); onGameCountDown.Invoke((int)countDownTimer); prevTime = (int)countDownTimer; } } else if (gameState == GameState.Playing) { gameTime += Time.deltaTime; newInfectionTimer += Time.deltaTime; if (newInfectionTimer > currentLevel.newInfectionSeconds) { populationManager.AddNewInfected(); newInfectionTimer = 0f; Dictionary <string, object> eventLog = new Dictionary <string, object>() { { "Event", "AddNewInfected" }, { "EventType", "SubjectEvent" }, { "LevelPlayID", levelPlayID }, }; eventLogger.Log("Event", eventLog); } if (subjectsInfectedScore - subjectsIsolationScore < 1) { Debug.Log("There are no infected subjects left, create new infections and people."); Dictionary <string, object> eventLog = new Dictionary <string, object>() { { "Event", "OutOfInfected" }, { "EventType", "SubjectEvent" }, { "LevelPlayID", levelPlayID }, }; eventLogger.Log("Event", eventLog); populationManager.StartInfection(1); populationManager.StartPopulation(1); currentLevel.numberOfSubjects++; eventLog = new Dictionary <string, object>() { { "Event", "AddNewInfected" }, { "EventType", "SubjectEvent" }, { "LevelPlayID", levelPlayID }, }; eventLogger.Log("Event", eventLog); } if (populationScore > 0) { //Debug.Log("Gametime: " + gameTime.ToString()); if (populationScore < currentLevel.gameOverScore) { gameState = GameState.GameLost; onGameOver.Invoke(GetGameStats(), gameState); Dictionary <string, object> eventLog = new Dictionary <string, object>() { { "Event", System.Enum.GetName(typeof(GameState), gameState) }, { "EventType", "GameEvent" }, { "LevelPlayID", levelPlayID }, }; eventLogger.Log("Event", eventLog); eventLogger.SaveLog("Event"); eventLogger.SaveLog("Sample"); eventLogger.ClearLog("Event"); eventLogger.ClearLog("Sample"); } bool didWin = gameTime > currentLevel.gameWonScore; //Debug.Log("gameTime: " + gameTime + " gameWonScore: " + gameWonScore + "won: " + didWin ); if (gameTime > currentLevel.gameWonScore) { Debug.Log("Game Won!"); gameState = GameState.GameWon; onGameOver.Invoke(GetGameStats(), gameState); Dictionary <string, object> eventLog = new Dictionary <string, object>() { { "Event", System.Enum.GetName(typeof(GameState), gameState) }, { "EventType", "GameEvent" }, { "LevelPlayID", levelPlayID }, }; eventLogger.Log("Event", eventLog); eventLogger.SaveLog("Event"); eventLogger.SaveLog("Sample"); eventLogger.ClearLog("Event"); eventLogger.ClearLog("Sample"); } } } else if (gameState == GameState.GameLost) { } else if (gameState == GameState.GameWon) { } else if (gameState == GameState.Stopped) { //onGameStateChanged.Invoke(gameTime, gameState); //ResetGame(); } }