コード例 #1
0
        /// <summary>
        ///     Add a button pedal to a specific ActionMenu page
        /// </summary>
        /// <param name="pageType">The page to add the button to</param>
        /// <param name="text">Button text</param>
        /// <param name="triggerEvent">Button click action</param>
        /// <param name="icon">(optional) The Button Icon</param>
        /// <param name="locked">(optional)The starting state for the lockable pedal, true = locked, false = unlocked</param>
        /// <param name="insertion">
        ///     (optional) Determines whether or not the button is added before or after VRChat's buttons for
        ///     the target page
        /// </param>
        public static PedalButton AddButton(ActionMenuPage pageType, string text, Action triggerEvent,
                                            Texture2D icon = null, bool locked = false, Insertion insertion = Insertion.Post)
        {
            var pedal = new PedalButton(text, icon, triggerEvent, locked);

            AddPedalToList(pageType, pedal, insertion);
            return(pedal);
        }
コード例 #2
0
        private void DoButtonDown(ref bool oldValue, byte pedalOutput, PedalButton button)
        {
            bool value = (pedalOutput & (byte)button) != 0;

            if (oldValue == value)
            {
                return;
            }
            oldValue = value;
            PropertyChanged?.Invoke(this,
                                    new PropertyChangedEventArgs(Enum.GetName(typeof(PedalButton), button) ?? ""));
            PickEvent(button, value)?.Invoke(this, EventArgs.Empty);
        }
コード例 #3
0
 protected void OnPedalButtonChanged(PedalButton button, PedalButtonStatus status)
 {
     PedalButtonChanged?.ThreadAwareRaise(this, new PedalButtonEventArgs(button, status));
 }
コード例 #4
0
 void Start()
 {
     spriteRenderer = gameObject.GetComponent <SpriteRenderer>();
     instance       = this;
     Debug.Log("pedal button setup");
 }
コード例 #5
0
 internal PedalButtonEventArgs(PedalButton button, PedalButtonStatus status)
 {
     Button = button;
     Status = status;
 }
コード例 #6
0
 private EventHandler?PickEvent(PedalButton button, in bool value) =>