private void Update() { RaycastHit hit; myEyeStruct = FoveInterface.CheckEyesClosed(); gcd = FoveInterface.GetGazeConvergence(); if (!prevgcd.Equals(gcd) || prev == "") { Physics.Raycast(gcd.ray, out hit, Mathf.Infinity); transform.position = hit.point; prevgcd = gcd; //Debug.Log("(accuracy,distance,ray) " + gcd.accuracy + " " + gcd.distance + " " + gcd.ray); } if (prev == "" || prev != myEyeStruct.ToString()) { prev = myEyeStruct.ToString(); //Debug.Log(prev); } }
// LateUpdate ensures that the object doesn't lag behind the user's head motion void FixedUpdate() { //set value rays = fove.GetGazeRays_Immediate(); myEyeStruct = FoveInterface.CheckEyesClosed(); //raycast Debug.Log(myEyeStruct.ToString()); Physics.Raycast(rays.left, out hit, Mathf.Infinity); if (fove.Gazecast(hit.collider)) { transform.position = hit.point; if (hit.point != Vector3.zero) //&& (myEyeStruct == EFVR_Eye.Right || myEyeStruct == EFVR_Eye.Both)) { transform.position = hit.point; //send a message to a destination gameobject if (prev == null) { //set the prev to the current hit collider prev = hit.collider; Debug.Log("hit collider set collider to my object " + prev.GetType()); if (prev.GetComponent <timerScript>() != null) { prev.SendMessage("StartTimer"); } } else if (prev.name != hit.collider.name) { if (prev.GetComponent <timerScript>() != null) { prev.SendMessage("StopTimer"); } if (hit.collider.GetComponent <timerScript>() != null) { hit.collider.SendMessage("StartTimer"); } prev = hit.collider; } } } }