public void UpdateState() { try { #if UNITY_EDITOR Quaternion rot; bool rolled = false; if (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt)) { mouseX += Input.GetAxis("Mouse X") * 5; if (mouseX <= -180) { mouseX += 360; } else if (mouseX > 180) { mouseX -= 360; } mouseY -= Input.GetAxis("Mouse Y") * 2.4f; mouseY = Mathf.Clamp(mouseY, -85, 85); } else if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) { rolled = true; mouseZ += Input.GetAxis("Mouse X") * 5; mouseZ = Mathf.Clamp(mouseZ, -85, 85); } if (!rolled && autoUntiltHead) { // People don't usually leave their heads tilted to one side for long. mouseZ = Mathf.Lerp(mouseZ, 0, Time.deltaTime / (Time.deltaTime + 0.1f)); } rot = Quaternion.Euler(mouseY, mouseX, mouseZ); var neck = (rot * neckOffset - neckOffset.y * Vector3.up) * neckModelScale; headPose.Set(neck, rot); #else MojingSDK.Unity_getLastHeadView(ref headView); // Debug.Log("-----headView" + headView.ToString()); #if UNITY_ANDROID headPose.SetRightHanded(headView); #elif UNITY_IOS headPose.Set(headView); #endif #endif } catch (Exception e) { MojingLog.LogError(e.ToString()); } }