118 lines
3.9 KiB
C#
118 lines
3.9 KiB
C#
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<GameObject> dots = new List<GameObject>();
|
|
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;
|
|
}
|
|
}
|