65 lines
1.7 KiB
C#
65 lines
1.7 KiB
C#
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();
|
|
}
|
|
}
|
|
} |