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