21 using UnityEngine.Events;
24 public static class SteamVR_Events
28 public abstract void Enable(
bool enabled);
29 public bool enabled { set { Enable(value); } }
41 public override void Enable(
bool enabled)
44 _event.Listen(action);
46 _event.Remove(action);
62 public override void Enable(
bool enabled)
65 _event.Listen(action);
67 _event.Remove(action);
71 UnityAction<T> action;
83 public override void Enable(
bool enabled)
86 _event.Listen(action);
88 _event.Remove(action);
92 UnityAction<T0, T1> action;
100 this._event = _event;
101 this.action = action;
104 public override void Enable(
bool enabled)
107 _event.Listen(action);
109 _event.Remove(action);
113 UnityAction<T0, T1, T2> action;
118 public void Listen(UnityAction action) { this.AddListener(action); }
119 public void Remove(UnityAction action) { this.RemoveListener(action); }
120 public void Send() { this.Invoke(); }
123 public class Event<T> : UnityEvent<T>
125 public void Listen(UnityAction<T> action) { this.AddListener(action); }
126 public void Remove(UnityAction<T> action) { this.RemoveListener(action); }
127 public void Send(T arg0) { this.Invoke(arg0); }
130 public class Event<T0, T1> : UnityEvent<T0, T1>
132 public void Listen(UnityAction<T0, T1> action) { this.AddListener(action); }
133 public void Remove(UnityAction<T0, T1> action) { this.RemoveListener(action); }
134 public void Send(T0 arg0, T1 arg1) { this.Invoke(arg0, arg1); }
137 public class Event<T0, T1, T2> : UnityEvent<T0, T1, T2>
139 public void Listen(UnityAction<T0, T1, T2> action) { this.AddListener(action); }
140 public void Remove(UnityAction<T0, T1, T2> action) { this.RemoveListener(action); }
141 public void Send(T0 arg0, T1 arg1, T2 arg2) { this.Invoke(arg0, arg1, arg2); }
145 public static Action CalibratingAction(UnityAction<bool> action) {
return new Action<bool>(Calibrating, action); }
147 public static Event<int, bool> DeviceConnected =
new Event<int, bool>();
148 public static Action DeviceConnectedAction(UnityAction<int, bool> action) {
return new Action<int, bool>(DeviceConnected, action); }
150 public static Event<Color, float, bool> Fade =
new Event<Color, float, bool>();
151 public static Action FadeAction(UnityAction<Color, float, bool> action) {
return new Action<Color, float, bool>(Fade, action); }
153 public static Event FadeReady =
new Event();
154 public static Action FadeReadyAction(UnityAction action) {
return new ActionNoArgs(FadeReady, action); }
156 public static Event<bool> HideRenderModels =
new Event<bool>();
157 public static Action HideRenderModelsAction(UnityAction<bool> action) {
return new Action<bool>(HideRenderModels, action); }
159 public static Event<bool> Initializing =
new Event<bool>();
160 public static Action InitializingAction(UnityAction<bool> action) {
return new Action<bool>(Initializing, action); }
162 public static Event<bool> InputFocus =
new Event<bool>();
163 public static Action InputFocusAction(UnityAction<bool> action) {
return new Action<bool>(InputFocus, action); }
165 public static Event<bool> Loading =
new Event<bool>();
166 public static Action LoadingAction(UnityAction<bool> action) {
return new Action<bool>(Loading, action); }
168 public static Event<float> LoadingFadeIn =
new Event<float>();
169 public static Action LoadingFadeInAction(UnityAction<float> action) {
return new Action<float>(LoadingFadeIn, action); }
171 public static Event<float> LoadingFadeOut =
new Event<float>();
172 public static Action LoadingFadeOutAction(UnityAction<float> action) {
return new Action<float>(LoadingFadeOut, action); }
174 public static Event<TrackedDevicePose_t[]> NewPoses =
new Event<TrackedDevicePose_t[]>();
175 public static Action NewPosesAction(UnityAction<
TrackedDevicePose_t[]> action) {
return new Action<TrackedDevicePose_t[]>(NewPoses, action); }
177 public static Event NewPosesApplied =
new Event();
178 public static Action NewPosesAppliedAction(UnityAction action) {
return new ActionNoArgs(NewPosesApplied, action); }
180 public static Event<bool> OutOfRange =
new Event<bool>();
181 public static Action OutOfRangeAction(UnityAction<bool> action) {
return new Action<bool>(OutOfRange, action); }
183 public static Event<SteamVR_RenderModel, bool> RenderModelLoaded =
new Event<SteamVR_RenderModel, bool>();
184 public static Action RenderModelLoadedAction(UnityAction<SteamVR_RenderModel, bool> action) {
return new Action<SteamVR_RenderModel, bool>(RenderModelLoaded, action); }
186 static System.Collections.Generic.Dictionary<EVREventType, Event<VREvent_t>> systemEvents =
new System.Collections.Generic.Dictionary<EVREventType, Event<VREvent_t>>();
187 public static Event<VREvent_t> System(EVREventType eventType)
190 if (!systemEvents.TryGetValue(eventType, out e))
192 e =
new Event<VREvent_t>();
193 systemEvents.Add(eventType, e);
198 public static Action SystemAction(EVREventType eventType, UnityAction<VREvent_t> action)
200 return new Action<VREvent_t>(System(eventType), action);