namespace XmobiTea.UIEffect.Effect.Show { using UnityEngine; using DG.Tweening; [DisallowMultipleComponent] public class MoveShowEffect : BaseEffect { [SerializeField] private DirectionMove _moveType = DirectionMove.Left; [SerializeField] private float offset = 640; [SerializeField] private Vector2 _hidePosition; [SerializeField] private Vector2 _showPosition; private RectTransform rectTransform { get { return transform as RectTransform; } } protected override Tween OnShowEffect() { rectTransform.anchoredPosition = _hidePosition; return rectTransform.DOAnchorPos(_showPosition, _time); } protected override Tween OnHideEffect() { return rectTransform.DOAnchorPos(_hidePosition, _time / 2f); } private void OnValidate() { _showPosition = rectTransform.anchoredPosition; _hidePosition = rectTransform.anchoredPosition; switch (_moveType) { case DirectionMove.Left: _hidePosition.x += offset; break; case DirectionMove.Right: _hidePosition.x -= offset; break; case DirectionMove.Up: _hidePosition.y -= offset; break; case DirectionMove.Down: _hidePosition.y += offset; break; } } public enum DirectionMove { Left, Right, Up, Down } } }