void Show() { if (_curMessage == null) { ProcessState(); return; } BBTTransform.gameObject.SetActive(true); TextField.text = _curMessage.Text; _state = StripeState.MovingDown; _seq = TweenHelper.ReplaceSequence(_seq); _seq.Append(BBTTransform.DOLocalMove(ShownPos, _moveTime)); _seq.AppendCallback(() => { _state = StripeState.Shown; }); _seq.AppendInterval(_curMessage.ShowTime); _seq.AppendCallback(() => { _state = StripeState.MovingUp; }); _seq.Append(BBTTransform.DOLocalMove(RetractedPos, _moveTime)); _seq.AppendCallback(() => { _state = StripeState.Retracted; _curMessage = null; BBTTransform.gameObject.SetActive(false); ProcessState(); }); }
void Update() { if (stripeRect == null) { return; } if (selected) { if (stripeState == StripeState.Entered) { return; } else if (stripeState == StripeState.Entering) { Vector2 curPosition = stripeRect.anchoredPosition; curPosition.x += stripSpeed; if (curPosition.x > 0) { curPosition.x = 0; stripeState = StripeState.Entered; } stripeRect.anchoredPosition = curPosition; } else if (stripeState == StripeState.Exiting) { Vector2 curPosition = stripeRect.anchoredPosition; curPosition.x -= stripSpeed; if (curPosition.x < 0) { curPosition.x = 0; stripeState = StripeState.Entered; } stripeRect.anchoredPosition = curPosition; } else if (stripeState == StripeState.Exited) { stripeImage.enabled = true; Vector2 curPosition = stripeRect.anchoredPosition; curPosition.x = stripRectStart; stripeState = StripeState.Entering; stripeRect.anchoredPosition = curPosition; } } else { if (stripeState == StripeState.Exited) { return; } else if (stripeState == StripeState.Entering) { Vector2 curPosition = stripeRect.anchoredPosition; curPosition.x -= stripSpeed; if (curPosition.x < stripRectStart) { curPosition.x = stripRectStart; stripeImage.enabled = false; stripeState = StripeState.Exited; } stripeRect.anchoredPosition = curPosition; } else if (stripeState == StripeState.Exiting) { Vector2 curPosition = stripeRect.anchoredPosition; // Debug.Log($"{curPosition},{stripSpeed},{stripRectEnd}"); curPosition.x += stripSpeed; if (curPosition.x > stripRectEnd) { curPosition.x = stripRectEnd; stripeImage.enabled = false; stripeState = StripeState.Exited; } stripeRect.anchoredPosition = curPosition; } else if (stripeState == StripeState.Entered) { stripeState = StripeState.Exiting; } } }