using System; using System.Collections.Generic; using System.Diagnostics; using System.Text; using UnityEngine; using UnityEngine.EventSystems; public class ExperimentController : MonoBehaviour { GameObject startDot; GameObject nextDot; int trialIndex; int trialDotIndex; Participant participant; List dots = new List(); Stopwatch stopwatch = new Stopwatch(); GameObject playerCamera; // Use this for initialization void Start () { //FOR THE LOVE OF GOD FUCKING DELETE THIS, SERIOUSLY CHRIS DON'T YOU DARE FORGET string fuck = "ewoidHJpYWxzIiA6IFsKICBbIkxlZnRMb25nIiwiUmlnaHRNZWRpdW0iLCJMZWZ0U2hvcnQiLCJVcE1lZGl1bSIsIlVwTG9uZyIsIlJpZ2h0U2hvcnQiXSwKICBbIlVwU2hvcnQiLCJSaWdodExvbmciLCJMZWZ0TWVkaXVtIiwiUmlnaHRNZWRpdW0iLCJMZWZ0TG9uZyIsIlVwTG9uZyJdLAogIFsiUmlnaHRTaG9ydCIsIlVwTWVkaXVtIiwiTGVmdE1lZGl1bSIsIkxlZnRTaG9ydCIsIlJpZ2h0TG9uZyIsIlVwU2hvcnQiXSwKICBbIkxlZnRMb25nIiwiUmlnaHRNZWRpdW0iLCJMZWZ0U2hvcnQiLCJVcE1lZGl1bSIsIlVwTG9uZyIsIlJpZ2h0U2hvcnQiXSwKICBbIlVwU2hvcnQiLCJSaWdodExvbmciLCJMZWZ0TWVkaXVtIiwiUmlnaHRNZWRpdW0iLCJMZWZ0TG9uZyIsIlVwTG9uZyJdLAogIFsiUmlnaHRTaG9ydCIsIlVwTWVkaXVtIiwiTGVmdE1lZGl1bSIsIkxlZnRTaG9ydCIsIlJpZ2h0TG9uZyIsIlVwU2hvcnQiXSwKICBbIkxlZnRMb25nIiwiUmlnaHRNZWRpdW0iLCJMZWZ0U2hvcnQiLCJVcE1lZGl1bSIsIlVwTG9uZyIsIlJpZ2h0U2hvcnQiXSwKICBbIlVwU2hvcnQiLCJSaWdodExvbmciLCJMZWZ0TWVkaXVtIiwiUmlnaHRNZWRpdW0iLCJMZWZ0TG9uZyIsIlVwTG9uZyJdLAogIFsiUmlnaHRTaG9ydCIsIlVwTWVkaXVtIiwiTGVmdE1lZGl1bSIsIkxlZnRTaG9ydCIsIlJpZ2h0TG9uZyIsIlVwU2hvcnQiXQpdLAoicGFydGljaXBhbnRJZCIgOiAxLAoiaW5wdXRNZXRob2QiIDogImNhcmRib2FyZCIKfQo="; byte[] decodedBytes = Convert.FromBase64String(fuck); string decodedText = Encoding.UTF8.GetString(decodedBytes); UnityEngine.Debug.Log(decodedText); participant = new Participant(decodedText); startDot = GameObject.Find("StartButton"); playerCamera = GameObject.FindGameObjectsWithTag("MainCamera")[0]; trialIndex = 0; trialDotIndex = 0; foreach (GameObject go in GameObject.FindGameObjectsWithTag("Dot")) { dots.Add(go); Hide(go); }; } void Hide(GameObject dot) { dot.SetActive(false); } void Show(GameObject dot) { dot.SetActive(true); } public void NextDot() { if (stopwatch.IsRunning) { stopwatch.Stop(); double time = stopwatch.Elapsed.TotalSeconds; stopwatch.Reset(); } else { stopwatch.Start(); } nextDot = FindDot(participant.trials[trialIndex][trialDotIndex]); trialDotIndex++; Show(nextDot); Hide(startDot); } public void BackToStart() { stopwatch.Stop(); double time = stopwatch.Elapsed.TotalSeconds; stopwatch.Reset(); double angle = Vector3.Angle(nextDot.transform.position, playerCamera.transform.position); double arcDistance = angle * (float)(Math.PI / 180) * 10; Hide(nextDot); Show(startDot); } public void CardboardWrapper(GameObject go, PointerEventData eventData) { UnityEngine.Debug.Log(eventData.pointerPressRaycast.worldPosition); if (go != null) { UnityEngine.Debug.Log(go.name); if (go.name == "StartButton") { NextDot(); } else { BackToStart(); } } else { UnityEngine.Debug.Log("Missed"); } } // Update is called once per frame void Update () { } GameObject FindDot(string name) { foreach(GameObject dot in dots) { if (dot.name == name) return dot; } return null; } }