예제 #1
0
    /// <summary>
    /// Unsubscribe a given listener
    /// from the collection that it
    /// was assigned to
    /// </summary>
    /// <param name="listener">The listener to be removed</param>
    public void Unsubscribe(IButtonListener listener)
    {
        // Get the button(s) that the VRDControllerButtonListener
        // was getting input from
        OVRInput.Button targetButton = listener.TargetButton;

        // Check to see if each of our
        // buttons were being listened to.
        // When one is found, remove the
        // listener from the appropriate
        // collection
        if (targetButton.HasFlag(OVRInput.Button.One))
        {
            Unsubscribe(listener, ref buttonOneListeners);
        }
        if (targetButton.HasFlag(OVRInput.Button.Two))
        {
            Unsubscribe(listener, ref buttonTwoListeners);
        }
        if (targetButton.HasFlag(OVRInput.Button.PrimaryThumbstick))
        {
            Unsubscribe(listener, ref thumbstickListeners);
        }
        if (targetButton.HasFlag(OVRInput.Button.PrimaryIndexTrigger))
        {
            Unsubscribe(listener, ref indexTriggerListeners);
        }
        if (targetButton.HasFlag(OVRInput.Button.PrimaryHandTrigger))
        {
            Unsubscribe(listener, ref gripTriggerListeners);
        }
    }
 public void ReceiveInput(OVRInput.Button button)
 {
     if (acceptedButtons.HasFlag(button))
     {
         TriggerEvents();
     }
 }