protected virtual void SetupPlayArea() { playArea = VRTK_DeviceFinder.PlayAreaTransform(); if (playArea != null) { lastPlayAreaPosition = playArea.position; collisionTracker = playArea.GetComponent <VRTK_CollisionTracker>(); if (collisionTracker == null) { collisionTracker = playArea.gameObject.AddComponent <VRTK_CollisionTracker>(); } ManageCollisionListeners(true); } }
/// <summary> /// Observable TriggerExit event /// </summary> /// <param name="events"></param> /// <returns></returns> public static IObservable <CollisionTrackerEventArgs> TriggerExitAsObservable(this VRTK_CollisionTracker events) { return(Observable.FromEvent <CollisionTrackerEventHandler, CollisionTrackerEventArgs>( h => (s, e) => h(e), h => events.TriggerExit += h, h => events.TriggerExit -= h)); }
/// <summary> /// Observable CollisionStay event /// </summary> /// <param name="events"></param> /// <returns></returns> public static IObservable <CollisionTrackerEventArgs> CollisionStayAsObservable(this VRTK_CollisionTracker events) { return(Observable.FromEvent <CollisionTrackerEventHandler, CollisionTrackerEventArgs>( h => (s, e) => h(e), h => events.CollisionStay += h, h => events.CollisionStay -= h)); }