public OpenVREvents(bool lazyLoadEvents = false) { if (OpenVRHelpers.IsUsingSteamVRInput()) { enabled = false; //let the steamvr plugin handle events return; } instance = this; events = new OpenVREvent[(int)EVREventType.VREvent_VendorSpecific_Reserved_End]; vrEvent = new VREvent_t(); vrEventSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VREvent_t)); if (lazyLoadEvents == false) { for (int eventIndex = 0; eventIndex < events.Length; eventIndex++) { events[eventIndex] = new OpenVREvent(); } } else { preloadedEvents = true; } RegisterDefaultEvents(); }
private void PollEvents(object stateIgnored) { VREvent_t vrEvent = new VREvent_t(); while (hmd.PollNextEvent(ref vrEvent, (uint)Marshal.SizeOf <VREvent_t>())) { OpenVREvent?.Invoke(this, new OpenVREventArgs(vrEvent)); } }
public void Add(API.EVREventType eventType, UnityAction <API.VREvent_t> action, bool removeOtherListeners = false) { int eventIndex = (int)eventType; if (preloadedEvents == false && events[eventIndex] == null) { events[eventIndex] = new OpenVREvent(); } if (removeOtherListeners) { events[eventIndex].RemoveAllListeners(); } events[eventIndex].AddListener(action); }
public OpenVREvents(bool lazyLoadEvents = false) { instance = this; events = new OpenVREvent[(int)API.EVREventType.VREvent_VendorSpecific_Reserved_End]; vrEvent = new API.VREvent_t(); vrEventSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(API.VREvent_t)); if (lazyLoadEvents == false) { for (int eventIndex = 0; eventIndex < events.Length; eventIndex++) { events[eventIndex] = new OpenVREvent(); } } else { preloadedEvents = true; } RegisterDefaultEvents(); }
public void Add(EVREventType eventType, UnityAction <VREvent_t> action, bool removeOtherListeners = false) { if (!enabled) { Debug.LogError("[OpenVR XR Plugin] This events class is currently not enabled, please use SteamVR_Events instead."); return; } int eventIndex = (int)eventType; if (preloadedEvents == false && events[eventIndex] == null) { events[eventIndex] = new OpenVREvent(); } if (removeOtherListeners) { events[eventIndex].RemoveAllListeners(); } events[eventIndex].AddListener(action); }