using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; public class Calibrate : MonoBehaviour { public Camera cam; private int touchCount = 0; private float targetTime = 1.0f; public Text Fingercount; private string game="blinking"; public GameObject finger1; public GameObject finger2; public GameObject finger3; public GameObject finger4; public GameObject finger5; public GameObject finger6; public GameObject finger7; public GameObject finger8; public GameObject finger9; public GameObject finger10; private bool logged = false; //private Color color1 = Color.green; //private Color color2 = Color.cyan; private int counter=1; private Touch[] sortedTouches = new Touch[10];// Input.touches; // Use this for initialization void Start () { //Camera.main.aspect = 1536f / 2048f; finger1.GetComponent().enabled = false; finger2.GetComponent().enabled = false; finger3.GetComponent().enabled = false; finger4.GetComponent().enabled = false; finger5.GetComponent().enabled = false; finger6.GetComponent().enabled = false; finger7.GetComponent().enabled = false; finger8.GetComponent().enabled = false; finger9.GetComponent().enabled = false; finger10.GetComponent().enabled = false; Vector3 pos = cam.ScreenToWorldPoint(finger1.transform.position); pos.z = 0.0f; finger1.transform.position = pos; pos = cam.ScreenToWorldPoint(finger2.transform.position); pos.z = 0.0f; finger2.transform.position = pos; pos = cam.ScreenToWorldPoint(finger3.transform.position); pos.z = 0.0f; finger3.transform.position = pos; pos = cam.ScreenToWorldPoint(finger4.transform.position); pos.z = 0.0f; finger4.transform.position = pos; pos = cam.ScreenToWorldPoint(finger5.transform.position); pos.z = 0.0f; finger5.transform.position = pos; pos = cam.ScreenToWorldPoint(finger6.transform.position); pos.z = 0.0f; finger6.transform.position = pos; pos = cam.ScreenToWorldPoint(finger7.transform.position); pos.z = 0.0f; finger7.transform.position = pos; pos = cam.ScreenToWorldPoint(finger8.transform.position); pos.z = 0.0f; finger8.transform.position = pos; pos = cam.ScreenToWorldPoint(finger9.transform.position); pos.z = 0.0f; finger9.transform.position = pos; pos = cam.ScreenToWorldPoint(finger10.transform.position); pos.z = 0.0f; finger10.transform.position = pos; //game = "blinking"; } void timerEnded() { //do your stuff here. sortTouches(); /*Gamestate.Instance.setTouchPoints(sortedTouches); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[0].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[1].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[2].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[3].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[4].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[5].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[6].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[7].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[8].position.ToString()); Debug.Log("cal: " + Gamestate.Instance.getTouchPoints()[9].position.ToString()); */ DontDestroyOnLoad(Gamestate.Instance); Gamestate.Instance.startIntro(); } private void sortTouches() { List touches = new List();// Input.touches; touches = Input.touches.OrderBy(t => t.position.y).ToList(); Touch t1 = touches[0]; Touch t2 = touches[1]; //Thumbs if (t1.position.x < t2.position.x) { sortedTouches[0] = t2; sortedTouches[5] = t1; } else { sortedTouches[0] = t1; sortedTouches[5] = t2; } touches.RemoveRange(0, 2); touches = touches.OrderBy(t => t.position.x).ToList(); sortedTouches[9] = touches.First(); touches.RemoveAt(0); sortedTouches[8] = touches.First(); touches.RemoveAt(0); sortedTouches[7] = touches.First(); touches.RemoveAt(0); sortedTouches[6] = touches.First(); touches.RemoveAt(0); sortedTouches[4] = touches.First(); touches.RemoveAt(0); sortedTouches[3] = touches.First(); touches.RemoveAt(0); sortedTouches[2] = touches.First(); touches.RemoveAt(0); sortedTouches[1] = touches.First(); } // Update is called once per frame void Update () { switch (game) { case "running": if (!logged) { Debug.Log("running"); logged = true; } foreach (Touch touch in Input.touches) { switch (touch.phase) { case TouchPhase.Began: touchCount += 1; Fingercount.text = touchCount.ToString(); break; case TouchPhase.Ended: touchCount -= 1; Fingercount.text = touchCount.ToString(); break; default: break; } } if (touchCount == 10) { targetTime -= Time.deltaTime; if (targetTime <= 0.0f) { timerEnded(); } } break; case "blinking": targetTime -= Time.deltaTime; //float t = Mathf.PingPong(Time.time, duration) / duration; //cam.backgroundColor = Color.Lerp(color1, color2, t); if (targetTime <= 0.0f) { Debug.Log("targetTime: " + targetTime.ToString()); Debug.Log("Time.deltaTime: " + Time.deltaTime.ToString()); Debug.Log("counter: "+counter.ToString()); switch (counter) { case 1: finger1.GetComponent().enabled = true; counter = 2; targetTime = 0.5f; break; case 2: finger2.GetComponent().enabled = true; counter = 3; targetTime = 0.5f; break; case 3: finger3.GetComponent().enabled = true; counter = 4; targetTime = 0.5f; break; case 4: finger4.GetComponent().enabled = true; counter = 5; targetTime = 0.5f; break; case 5: finger5.GetComponent().enabled = true; counter = 6; targetTime = 0.5f; break; case 6: finger6.GetComponent().enabled = true; counter = 7; targetTime = 0.5f; break; case 7: finger7.GetComponent().enabled = true; counter = 8; targetTime = 0.5f; break; case 8: finger8.GetComponent().enabled = true; counter = 9; targetTime = 0.5f; break; case 9: finger9.GetComponent().enabled = true; counter = 10; targetTime = 0.5f; break; case 10: finger10.GetComponent().enabled = true; counter = 11; targetTime = 0.5f; break; case 11: finger1.GetComponent().enabled = false; finger2.GetComponent().enabled = false; finger3.GetComponent().enabled = false; finger4.GetComponent().enabled = false; finger5.GetComponent().enabled = false; finger6.GetComponent().enabled = false; finger7.GetComponent().enabled = false; finger8.GetComponent().enabled = false; finger9.GetComponent().enabled = false; finger10.GetComponent().enabled = false; counter = 12; targetTime = 0.5f; break; case 12: finger1.GetComponent().enabled = true; finger2.GetComponent().enabled = true; finger3.GetComponent().enabled = true; finger4.GetComponent().enabled = true; finger5.GetComponent().enabled = true; finger6.GetComponent().enabled = true; finger7.GetComponent().enabled = true; finger8.GetComponent().enabled = true; finger9.GetComponent().enabled = true; finger10.GetComponent().enabled = true; counter = 13; targetTime = 0.5f; break; case 13: finger1.GetComponent().enabled = false; finger2.GetComponent().enabled = false; finger3.GetComponent().enabled = false; finger4.GetComponent().enabled = false; finger5.GetComponent().enabled = false; finger6.GetComponent().enabled = false; finger7.GetComponent().enabled = false; finger8.GetComponent().enabled = false; finger9.GetComponent().enabled = false; finger10.GetComponent().enabled = false; targetTime = 2.0f; game = "running"; break; } } break; } } }