コード例 #1
0
    public void DoSetState(SelectableState newState)
    {
        if (isServer && !freeExploration)
        {
            RpcDoSetState(newState);
        }

        var oldState = selectableState;

        selectableState = newState;

        switch (newState)
        {
        case SelectableState.Hidden:
            onHide?.Invoke(oldState);
            break;

        case SelectableState.Selected:
            onSelect?.Invoke(oldState);
            break;

        case SelectableState.Inactive:
            onInactive?.Invoke(oldState);
            break;

        case SelectableState.Normal:
            onNormal?.Invoke(oldState);
            break;
        }
    }
コード例 #2
0
 public void RpcDoSetState(SelectableState newState)
 {
     if (!isServer)
     {
         DoSetState(newState);
     }
 }
コード例 #3
0
    private void OnSelect(SelectableState oldState)
    {
        if (movement != null)
        {
            StopCoroutine(movement);
        }

        if (gameObject.activeInHierarchy)
        {
            movement = StartCoroutine(DoGetObject());
        }
        else
        {
            lerpParam = 1;
            goal.StartFreeRotation();
        }
    }
コード例 #4
0
    private void OnNormal(SelectableState oldState)
    {
        if (oldState == SelectableState.Selected)
        {
            if (movement != null)
            {
                StopCoroutine(movement);
            }

            if (gameObject.activeInHierarchy)
            {
                movement = StartCoroutine(DoReturnObject());
            }
            else
            {
                lerpParam = 0;
                goal.StopFreeRotation();
            }
        }
    }
コード例 #5
0
        /// <summary>
        /// Function to set the state of the Button
        /// </summary>
        /// <param name="newState">The new State</param>
        public void SetState(SelectableState newState)
        {
            if (newState == SelectableState.Selected && State != SelectableState.Selected)
            {
                onClick?.Invoke(this);
            }
            else if (newState == SelectableState.Hovered && State == SelectableState.None)
            {
                onEnter?.Invoke(this);
            }
            else if (newState == SelectableState.Hovered && State == SelectableState.Hovered)
            {
                onHover?.Invoke(this);
            }
            else if (newState == SelectableState.None && State == SelectableState.Hovered)
            {
                onLeave?.Invoke(this);
            }

            State = newState;
        }
コード例 #6
0
ファイル: UISelectable.cs プロジェクト: deanljohnson/SFMLUI
        protected virtual void SwitchState(SelectableState newState)
        {
            if (newState == State)
            {
                return;
            }

            State = newState;
            switch (State)
            {
            case SelectableState.Unselected:
                OnUnselect?.Invoke(this);
                return;

            case SelectableState.Selected:
                OnSelect?.Invoke(this);
                return;
            }

            throw new Exception($"Unrecognized State {State}");
        }
コード例 #7
0
 private void OnInactive(SelectableState oldState)
 {
 }