void StateTransition(ScreenJoystick.StateEnum lastState, ScreenJoystick.StateEnum curState) { switch (curState) { case ScreenJoystick.StateEnum.Idle: Hide(); break; case ScreenJoystick.StateEnum.InvalidDragging: case ScreenJoystick.StateEnum.ValidDragging: MinCircle.SetActive(true); FallSpot.SetActive(true); DragSpot.SetActive(true); break; default: throw new ArgumentOutOfRangeException(); } }
void Update() { if (!CenterObject || !Joystick) { return; } transform.position = CenterObject.position.SetV3Y(0.01f); if (Joystick.State != _lastState) { StateTransition(_lastState, Joystick.State); _lastState = Joystick.State; } if (Joystick.State != ScreenJoystick.StateEnum.Idle) { FallSpot.SetActive(Joystick.IsValidDrag); FallSpot.transform.position = transform.position + Joystick.WorldActualDisplacement; DragSpot.transform.position = transform.position + Joystick.WorldAimingDisplacement; } }