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; } }
public void RpcDoSetState(SelectableState newState) { if (!isServer) { DoSetState(newState); } }
private void OnSelect(SelectableState oldState) { if (movement != null) { StopCoroutine(movement); } if (gameObject.activeInHierarchy) { movement = StartCoroutine(DoGetObject()); } else { lerpParam = 1; goal.StartFreeRotation(); } }
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(); } } }
/// <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; }
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}"); }
private void OnInactive(SelectableState oldState) { }