//public GameObject[] generate_rbState_Objects_1; //public GameObject[] generate_ControllerGameobject_Objects_1; // Use this for initialization void Start() { // If the user didn't explicitly associate a client, find a suitable default. if (this.StreamingClient == null) { this.StreamingClient = OptitrackStreamingClient.FindDefaultClient(); // If we still couldn't find one, disable this component. if (this.StreamingClient == null) { Debug.LogError(GetType().FullName + ": Streaming client not set, and no " + typeof(OptitrackStreamingClient).FullName + " components found in scene; disabling this component.", this); this.enabled = false; return; } } calibrationData = new CalibrationProcessData(); if (calibrateMethod == CalibrationLoadMethod.LOADFILE) { calibrationData.loadMatrixFromFile(); dataInitiate = true; } else if (calibrateMethod == CalibrationLoadMethod.CALIBRATION) { print("Press C for calibration"); } }
void Update() { OptitrackRigidBodyState rbState = StreamingClient.GetLatestRigidBodyState(RigidBodyID); Vector3 eulerAngles = this.transform.rotation.eulerAngles; if (rbState != null) { //assign the correct position if (matrixSet) { //Position CalibrationProcessData controllerData = calibrationScript.getControllerData(); this.transform.localPosition = transformationMatrix.MultiplyPoint3x4(rbState.Pose.Position); //Rotation //Quaternion to Matrix4x4 Matrix4x4 angleInMatrix = Matrix4x4.TRS(Vector3.zero, rbState.Pose.Orientation, Vector3.one); Matrix4x4 resultInMatrix = transformationMatrix * angleInMatrix; Quaternion q = QuaternionFromMatrix(resultInMatrix); //this.transform.rotation = q * Quaternion.Euler(offsetRotation.x, offsetRotation.y, offsetRotation.z); this.transform.rotation = q; } else { this.transform.localPosition = rbState.Pose.Position; this.transform.localRotation = rbState.Pose.Orientation; //Get the controller data if (calibrationScript.isDataInitiate() && !matrixSet) { CalibrationProcessData controllerData = calibrationScript.getControllerData(); transformationMatrix = controllerData.PositiontransformationMatrix; matrixSet = true; } } Debug.Log("transform.rotation angles x: " + eulerAngles.x + " y: " + eulerAngles.y + " z: " + eulerAngles.z); } //if Pen's angel in this range , it can show photos if (this.transform.rotation.eulerAngles.y > 250 && this.transform.rotation.eulerAngles.y < 290) { photo_show_flag = true; } else { photo_show_flag = false; obeject1.gameObject.SetActive(false); obeject2.gameObject.SetActive(false); obeject3.gameObject.SetActive(false); obeject4.gameObject.SetActive(false); object5.gameObject.SetActive(false); object6.gameObject.SetActive(false); object7.gameObject.SetActive(false); object8.gameObject.SetActive(false); object_text.gameObject.SetActive(false); } //if Pen's angel in this range , it can listen music if ((this.transform.rotation.eulerAngles.y < 20 || this.transform.rotation.eulerAngles.y > 340) && this.transform.rotation.eulerAngles.x > 290) { music_play = true; } else { music_play = false; music1.gameObject.SetActive(false); music2.gameObject.SetActive(false); music3.gameObject.SetActive(false); m_text1.gameObject.SetActive(false); m_text2.gameObject.SetActive(false); m_text3.gameObject.SetActive(false); } //play music if (music_play) { //play 1st music if (this.transform.rotation.eulerAngles.z < 120) { music1.gameObject.SetActive(true); music2.gameObject.SetActive(false); music3.gameObject.SetActive(false); Debug.Log("0000000000"); m_text1.gameObject.SetActive(true); m_text2.gameObject.SetActive(false); m_text3.gameObject.SetActive(false); } //play 2nd music else if (this.transform.rotation.eulerAngles.z > 120 && this.transform.rotation.eulerAngles.z < 240) { music1.gameObject.SetActive(false); music2.gameObject.SetActive(true); music3.gameObject.SetActive(false); Debug.Log("1111111111111"); m_text1.gameObject.SetActive(false); m_text2.gameObject.SetActive(true); m_text3.gameObject.SetActive(false); } //play 3rd music else { music1.gameObject.SetActive(false); music2.gameObject.SetActive(false); music3.gameObject.SetActive(true); Debug.Log("222222222222"); m_text1.gameObject.SetActive(false); m_text2.gameObject.SetActive(false); m_text3.gameObject.SetActive(true); } } // Show Photos if (photo_show_flag) { object_text.gameObject.SetActive(true); //Show Photo 1 if (this.transform.rotation.eulerAngles.z < 45) { obeject1.gameObject.SetActive(true); obeject2.gameObject.SetActive(false); obeject3.gameObject.SetActive(false); obeject4.gameObject.SetActive(false); object5.gameObject.SetActive(false); object6.gameObject.SetActive(false); object7.gameObject.SetActive(false); object8.gameObject.SetActive(false); } //Show Photo 2 else if (this.transform.rotation.eulerAngles.z >= 45 && this.transform.rotation.eulerAngles.z < 90) { obeject1.gameObject.SetActive(false); obeject2.gameObject.SetActive(true); obeject3.gameObject.SetActive(false); obeject4.gameObject.SetActive(false); object5.gameObject.SetActive(false); object6.gameObject.SetActive(false); object7.gameObject.SetActive(false); object8.gameObject.SetActive(false); } //Show Photo 3 else if (this.transform.rotation.eulerAngles.z >= 90 && this.transform.rotation.eulerAngles.z < 135) { obeject1.gameObject.SetActive(false); obeject2.gameObject.SetActive(false); obeject3.gameObject.SetActive(true); obeject4.gameObject.SetActive(false); object5.gameObject.SetActive(false); object6.gameObject.SetActive(false); object7.gameObject.SetActive(false); object8.gameObject.SetActive(false); } //Show Photo 4 else if (this.transform.rotation.eulerAngles.z >= 135 && this.transform.rotation.eulerAngles.z < 180) { obeject1.gameObject.SetActive(false); obeject2.gameObject.SetActive(false); obeject3.gameObject.SetActive(false); obeject4.gameObject.SetActive(true); object5.gameObject.SetActive(false); object6.gameObject.SetActive(false); object7.gameObject.SetActive(false); object8.gameObject.SetActive(false); } //Show Photo 5 else if (this.transform.rotation.eulerAngles.z >= 180 && this.transform.rotation.eulerAngles.z < 225) { obeject1.gameObject.SetActive(false); obeject2.gameObject.SetActive(false); obeject3.gameObject.SetActive(false); obeject4.gameObject.SetActive(false); object5.gameObject.SetActive(true); object6.gameObject.SetActive(false); object7.gameObject.SetActive(false); object8.gameObject.SetActive(false); } //Show Photo 6 else if (this.transform.rotation.eulerAngles.z >= 225 && this.transform.rotation.eulerAngles.z < 270) { obeject1.gameObject.SetActive(false); obeject2.gameObject.SetActive(false); obeject3.gameObject.SetActive(false); obeject4.gameObject.SetActive(false); object5.gameObject.SetActive(false); object6.gameObject.SetActive(true); object7.gameObject.SetActive(false); object8.gameObject.SetActive(false); } //Show Photo 7 else if (this.transform.rotation.eulerAngles.z >= 270 && this.transform.rotation.eulerAngles.z < 315) { obeject1.gameObject.SetActive(false); obeject2.gameObject.SetActive(false); obeject3.gameObject.SetActive(false); obeject4.gameObject.SetActive(false); object5.gameObject.SetActive(false); object6.gameObject.SetActive(false); object7.gameObject.SetActive(true); object8.gameObject.SetActive(false); } //Show Photo 8 else { obeject1.gameObject.SetActive(false); obeject2.gameObject.SetActive(false); obeject3.gameObject.SetActive(false); obeject4.gameObject.SetActive(false); object5.gameObject.SetActive(false); object6.gameObject.SetActive(false); object7.gameObject.SetActive(false); object8.gameObject.SetActive(true); } } }