// -------------------------------------------------------------------------------------------------------------------- // // Copyright (c) VRMADA, All rights reserved. // // -------------------------------------------------------------------------------------------------------------------- using UnityEngine; using UnityEngine.UI; namespace UltimateXR.Animation.UI { /// /// Abstract base class for tweening animations on Unity components. /// [RequireComponent(typeof(Graphic))] [DisallowMultipleComponent] public abstract class UxrGraphicTween : UxrTween { #region Public Types & Data public Graphic TargetGraphic => GetCachedComponent(); public RectTransform TargetRectTransform => GetCachedComponent(); #endregion #region Protected Overrides UxrTween /// protected override Behaviour TargetBehaviour => TargetGraphic; /// protected override void StoreOriginalValue() { _originalAnchoredPosition = TargetRectTransform.anchoredPosition; _originalLocalScale = TargetRectTransform.localScale; _originalLocalRotation = TargetRectTransform.localRotation; _originalColor = TargetGraphic.color; } #endregion #region Protected Methods /// /// Restores the original Graphic's anchored position. /// protected void RestoreAnchoredPosition() { if (HasOriginalValueStored) { TargetRectTransform.anchoredPosition = _originalAnchoredPosition; } } /// /// Restores the original Graphic's local scale. /// protected void RestoreLocalScale() { if (HasOriginalValueStored) { TargetRectTransform.localScale = _originalLocalScale; } } /// /// Restores the original Graphic's local rotation. /// protected void RestoreLocalRotation() { if (HasOriginalValueStored) { TargetRectTransform.localRotation = _originalLocalRotation; } } /// /// Restores the original Graphic's color. /// protected void RestoreColor() { if (HasOriginalValueStored) { TargetGraphic.color = _originalColor; } } #endregion #region Private Types & Data private Vector2 _originalAnchoredPosition; private Vector3 _originalLocalScale; private Quaternion _originalLocalRotation; private Color _originalColor; #endregion } }