IEnumerator InitializeLocation() { Input.location.Start(500, 500); int maxWait = 20; while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return(new WaitForSeconds(0.5f)); maxWait--; } if (Input.location.status == LocationServiceStatus.Initializing) { yield break; } else if (Input.location.status == LocationServiceStatus.Failed) { yield break; } // Access granted and location value could be retrieved Util.logDebug("MobileLocation::InitializeLocation\nLocation: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude); CognitiveVR_Manager.UpdateSessionState("c3d.geo.latitude", Input.location.lastData.latitude); CognitiveVR_Manager.UpdateSessionState("c3d.geo.longitude", Input.location.lastData.longitude); CognitiveVR_Manager.UpdateSessionState("c3d.geo.altitude", Input.location.lastData.altitude); if (!CognitiveVR_Preferences.Instance.TrackGPSLocation) { Input.location.Stop(); } }
void OnDestroy() { if (!Application.isPlaying) { return; } if (!Core.Initialized) { return; } #if CVR_STEAMVR SteamVR_TrackedController controller; for (int i = 0; i < 2; i++) { bool right = i == 0 ? true : false; if (CognitiveVR_Manager.GetController(right) == null) { continue; } controller = CognitiveVR_Manager.GetController(right).GetComponent <SteamVR_TrackedController>(); if (controller == null) { continue; } controller.TriggerClicked -= new ClickedEventHandler(OnTriggerClicked); controller.TriggerUnclicked -= new ClickedEventHandler(OnTriggerUnclicked); controller.Gripped -= new ClickedEventHandler(OnGripped); controller.Ungripped -= new ClickedEventHandler(OnUngripped); controller.PadClicked -= new ClickedEventHandler(OnPadClicked); } #endif }
public override void CognitiveVR_Init(Error initError) { base.CognitiveVR_Init(initError); SteamVR_TrackedController controller; for (int i = 0; i < 2; i++) { bool right = i == 0 ? true : false; if (CognitiveVR_Manager.GetController(right) == null) { continue; } controller = CognitiveVR_Manager.GetController(right).GetComponent <SteamVR_TrackedController>(); if (controller == null) { controller = CognitiveVR_Manager.GetController(right).gameObject.AddComponent <SteamVR_TrackedController>(); } controller.TriggerClicked += new ClickedEventHandler(OnTriggerClicked); controller.TriggerUnclicked += new ClickedEventHandler(OnTriggerUnclicked); controller.Gripped += new ClickedEventHandler(OnGripped); controller.Ungripped += new ClickedEventHandler(OnUngripped); controller.PadClicked += new ClickedEventHandler(OnPadClicked); } }
void EndTransaction(string transactionKey, string type, bool rightController) { string transactionID; if (pendingTransactions.TryGetValue(transactionKey, out transactionID)) { Vector3 pos = CognitiveVR_Manager.GetControllerPosition(rightController); new CustomEvent("cvr.input").SetProperty("type", type).SetProperty("device", rightController ? "right controller" : "left controller").SetProperty("state", "end").Send(pos); pendingTransactions.Remove(transactionID); } }
public override void CognitiveVR_Init(Error initError) { if (initError != Error.Success) { return; } base.CognitiveVR_Init(initError); CognitiveVR_Manager.UpdateSessionState(new Dictionary <string, object>() { { "cvr.vr.screenresolution", Screen.height + " x " + Screen.width } }); //CognitiveVR.Instrumentation.updateDeviceState(new Dictionary<string, object>() { { "cvr.vr.screenresolution", Screen.height + " x " + Screen.width } }); }
string GetViveDeviceName(int deviceID) { if (deviceID == 0) { return("hmd"); } CognitiveVR_Manager.ControllerInfo cont = CognitiveVR_Manager.GetControllerInfo(deviceID); if (cont != null) { return(cont.isRight ? "right controller" : "left controller"); } return("unknown id " + deviceID); }
void BeginTransaction(string transactionKey, string type, bool rightController) { Vector3 pos = CognitiveVR_Manager.GetControllerPosition(rightController); string transactionID = Util.GetUniqueId(); var inTransaction = new CustomEvent("cvr.input"); inTransaction.SetProperty("type", type).SetProperty("device", rightController?"right controller": "left controller").SetProperty("state", "begin"); inTransaction.Send(pos); if (!pendingTransactions.ContainsKey(transactionKey)) { pendingTransactions.Add(transactionKey, transactionID); } }
private void CognitiveVR_Manager_OnTick() { bool hit; #if CVR_STEAMVR if (CognitiveVR_Manager.GetController(false) != null) #endif { Vector3 pos = CognitiveVR_Manager.GetControllerPosition(false); hit = Physics.CheckSphere(pos, 0.1f, CollisionLayerMask); if (hit && string.IsNullOrEmpty(controller0GUID)) { Util.logDebug("controller collision"); controller0GUID = Util.GetUniqueId(); new CustomEvent("cvr.collision").SetProperty("device", "left controller").SetProperty("state", "begin").Send(); } else if (!hit && !string.IsNullOrEmpty(controller0GUID)) { new CustomEvent("cvr.collision").SetProperty("device", "left controller").SetProperty("state", "end").Send(); controller0GUID = string.Empty; } } #if CVR_STEAMVR if (CognitiveVR_Manager.GetController(true) != null) #endif { Vector3 pos = CognitiveVR_Manager.GetControllerPosition(true); hit = Physics.CheckSphere(pos, 0.1f, CollisionLayerMask); if (hit && string.IsNullOrEmpty(controller1GUID)) { Util.logDebug("controller collision"); controller1GUID = Util.GetUniqueId(); new CustomEvent("cvr.collision").SetProperty("device", "right controller").SetProperty("state", "begin").Send(); } else if (!hit && !string.IsNullOrEmpty(controller1GUID)) { new CustomEvent("cvr.collision").SetProperty("device", "right controller").SetProperty("state", "end").Send(); controller1GUID = string.Empty; } } }
public override void CognitiveVR_Init(Error initError) { if (initError != Error.Success) { return; } base.CognitiveVR_Init(initError); #if CVR_OCULUS //TODO add oculus audio changed events CognitiveVR_Manager.UpdateSessionState(new Dictionary <string, object>() { { "cvr.vr.headphonespresent", OVRPlugin.headphonesPresent } }); #elif CVR_STEAMVR //TODO could check SteamVR_Ears if using speaker? #endif }
private void CognitiveVR_Manager_OnTick() { if (samples < SampleCount) { maxSqrDistance = Mathf.Max(maxSqrDistance, OVRInput.GetLocalControllerPosition(OVRInput.Controller.RTouch).sqrMagnitude, OVRInput.GetLocalControllerPosition(OVRInput.Controller.LTouch).sqrMagnitude); //maxSqrDistance = Mathf.Max(Vector3.SqrMagnitude(CognitiveVR_Manager.GetController(0).position - CognitiveVR_Manager.HMD.position)); samples++; if (samples >= SampleCount) { Util.logDebug("arm length " + maxSqrDistance); CognitiveVR_Manager.UpdateSessionState(new Dictionary <string, object> { { "cvr.armlength", Mathf.Sqrt(maxSqrDistance) } }); //Instrumentation.updateUserState(new Dictionary<string, object> { { "armlength", Mathf.Sqrt(maxSqrDistance) } }); CognitiveVR_Manager.TickEvent -= CognitiveVR_Manager_OnTick; } } }
private void OnPadClicked(object sender, ClickedEventArgs e) { var padTransaction = new CustomEvent("cvr.input"); CognitiveVR_Manager.ControllerInfo cont = CognitiveVR_Manager.GetControllerInfo((int)e.controllerIndex); if (cont == null) { return; } Vector3 pos = CognitiveVR_Manager.GetControllerPosition(cont.isRight); padTransaction.SetProperties(new Dictionary <string, object> { { "type", "pad" }, { "device", cont.isRight?"right controller":"left controller" }, { "x", e.padX }, { "y", e.padY } }); padTransaction.Send(pos); }
private void CognitiveVR_Manager_OnTick() { if (CognitiveVR_Manager.HMD == null) { return; } if (samples < SampleCount) { hmdAccumHeight += CognitiveVR_Manager.HMD.position.y; samples++; if (samples >= SampleCount) { float averageHeight = hmdAccumHeight / samples; Util.logDebug("head height " + averageHeight); CognitiveVR_Manager.UpdateSessionState(new Dictionary <string, object> { { "cvr.height", averageHeight } }); CognitiveVR_Manager.TickEvent -= CognitiveVR_Manager_OnTick; } } }
public override void CognitiveVR_Init(Error initError) { if (initError != Error.Success) { return; } base.CognitiveVR_Init(initError); #if CVR_STEAMVR float roomX = 0; float roomY = 0; if (Valve.VR.OpenVR.Chaperone == null || !Valve.VR.OpenVR.Chaperone.GetPlayAreaSize(ref roomX, ref roomY)) { CognitiveVR_Manager.UpdateSessionState(new Dictionary <string, object>() { { "cvr.vr.roomsize", "0 x 0" }, { "cvr.vr.roomscale", false } }); //Instrumentation.updateDeviceState(new Dictionary<string, object>() { { "cvr.vr.roomsize", "0 x 0" }, { "cvr.vr.roomscale", false } }); } else { bool seated = Mathf.Approximately(roomX, 1f) && roomX == roomY; CognitiveVR_Manager.UpdateSessionState(new Dictionary <string, object>() { { "cvr.vr.roomsize", string.Format("{0:0.0} x {1:0.0}", roomX, roomY) }, { "cvr.vr.roomscale", !seated } }); //Instrumentation.updateDeviceState(new Dictionary<string, object>(){{ "cvr.vr.roomsize", string.Format("{0:0.0} x {1:0.0}", roomX, roomY) },{ "cvr.vr.roomscale", !seated }}); } #elif CVR_OCULUS //(x = width, y = height, z = depth) Vector3 dimensions = OVRManager.boundary.GetDimensions(OVRBoundary.BoundaryType.PlayArea); CognitiveVR_Manager.UpdateSessionState(new Dictionary <string, object>() { { "cvr.vr.roomsize", string.Format("{0:0.0} x {1:0.0}", dimensions.x, dimensions.z) } }); //Instrumentation.updateDeviceState(new Dictionary<string, object>(){{ "cvr.vr.roomsize", string.Format("{0:0.0} x {1:0.0}", dimensions.x, dimensions.z) }}); #endif }
void OnTriggerUnclicked(object sender, ClickedEventArgs e) { CognitiveVR_Manager.ControllerInfo cont = CognitiveVR_Manager.GetControllerInfo((int)e.controllerIndex); EndTransaction("trigger" + e.controllerIndex, "trigger", cont.isRight); }
private void OnUngripped(object sender, ClickedEventArgs e) { CognitiveVR_Manager.ControllerInfo cont = CognitiveVR_Manager.GetControllerInfo((int)e.controllerIndex); EndTransaction("grip" + e.controllerIndex, "grip", cont.isRight); }