//call if study is over public static void closeIfOpen() { if (instance != null) { instance.sw.Close(); Debug.Log("Finished Record"); instance = null; } }
public void OnButtonPress() { if (_material != null) { if (_material.color == MyRed) { print(transform.parent.gameObject.name + "Button Pressed"); SaveClickData.Save(); Variables.ClickPositions.Add(Variables.ClickPosition); OnButtonPressAction(); } } }
private void ButtonMissed() { isButtonMissed = true; Variables.ClickTime = Variables.GetCurrentUnixTimestampMillis(); Variables.MissedTimeSinceLastHit = (Variables.Times.Count > 0) ? (Variables.GetCurrentUnixTimestampMillis() - Variables.MinusTime) - Variables.Times[Variables.Times.Count - 1] : 0; if (Variables.MissedTimeSinceLastHit >= 30) { print(transform.parent.gameObject.name + "Button Missed"); SaveClickData.Save(); } }
public void OnApplicationQuit() { SaveClickData.closeIfOpen(); SaveQuestionnaire.CloseIfOpen(); SaveHandPosition.closeIfOpen(); }
public static void Save() { if (instance == null) { instance = new SaveClickData(); } string output = ""; var sample = Variables.SampleNumber; Variables.SampleNumber++; var unixTIme = Variables.GetCurrentUnixTimestampMillis(); var SubjectID = Variables.UserId; var TargetNo = Variables.ButtonNames[Variables.NextIndex]; var CurrentHandGameObject = instance._objects.HandController.GetComponent <GetHandMovement>().GetCurrentHand().name; var displacement = CurrentHandGameObject.Split('_')[3]; var texture = CurrentHandGameObject.Split('_')[4]; var amplitude = Variables.Amplitude; var buttonWidth = Variables.ButtonWidthModifier; var ID = Mathf.Log(amplitude / (buttonWidth) + 0.5f, 2); bool Hit = !Variables.ButtonMissedFlag; if (Hit) { if (_repetitionDict.ContainsKey(ID)) { _repetitionDict[ID]++; } else { _repetitionDict.Add(ID, 1); } } var Repetition = (int)(_repetitionDict[ID] / 16) + 1; var duration = Hit ? Variables.Duration: Variables.MissedTimeSinceLastHit; var throughput = Throughput.CalculateTp(ID, Variables.DurationArray.ToArray()); var posTargetX = TargetNo.transform.localPosition.x; var posTargetZ = TargetNo.transform.localPosition.z; var posFingerX = Variables.ClickPositionX; var posFingerZ = Variables.ClickPositionY; var distance = Mathf.Sqrt(Mathf.Pow(posTargetX - posFingerX, 2) + Mathf.Pow(posTargetZ - posFingerZ, 2)); output += sample + CSV_SEPARATOR + unixTIme + CSV_SEPARATOR + SubjectID + CSV_SEPARATOR + CurrentHandGameObject + CSV_SEPARATOR + texture + CSV_SEPARATOR + displacement + CSV_SEPARATOR + ID + CSV_SEPARATOR + buttonWidth + CSV_SEPARATOR + amplitude + CSV_SEPARATOR + duration + CSV_SEPARATOR + TargetNo.name + CSV_SEPARATOR + Hit + CSV_SEPARATOR + Repetition + CSV_SEPARATOR + throughput + CSV_SEPARATOR + posTargetX + CSV_SEPARATOR + posTargetZ + CSV_SEPARATOR + posFingerX + CSV_SEPARATOR + posFingerZ + CSV_SEPARATOR + distance + CSV_SEPARATOR + Variables.LastRoundFailed; instance.sw.Write(output + "\r\n"); instance.sw.Flush(); }