using System.Collections; using DG.Tweening; using UnityEngine; namespace AibisDream { public class FadeSprite : IFadeObject { private readonly SpriteRenderer _spriteRenderer; public FadeSprite(SpriteRenderer spriteRenderer) { _spriteRenderer = spriteRenderer; } public void FadeIn(float duration) { _spriteRenderer.gameObject.SetActive(true); _spriteRenderer.DOFade(1, duration); } public void FadeOut(float duration) { _spriteRenderer.DOFade(0, duration).onComplete += () => { _spriteRenderer.gameObject.SetActive(false); }; } public IEnumerator FadeInSync(float duration) { _spriteRenderer.gameObject.SetActive(true); var tweener = _spriteRenderer.DOFade(1, duration); if (!tweener.IsComplete()) { yield return null; } } public IEnumerator FadeOutSync(float duration) { var tweener = _spriteRenderer.DOFade(0, duration); if (!tweener.IsComplete()) { yield return null; } _spriteRenderer.gameObject.SetActive(false); } public void Show() { _spriteRenderer.gameObject.SetActive(true); _spriteRenderer.color = Color.white; } public void Hide() { _spriteRenderer.color = Color.clear; _spriteRenderer.gameObject.SetActive(false); } public void MoveTo(Vector3 targetPos) { throw new System.NotImplementedException(); } } }