80 lines
2.1 KiB
C#
80 lines
2.1 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using DG.Tweening;
|
|
using DG.Tweening.Core;
|
|
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;
|
|
}
|
|
else
|
|
{
|
|
_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 SwitchImage(string imagePath)
|
|
{
|
|
_spriteRenderer.sprite = Resources.Load<Sprite>("Art/Character/"+imagePath);
|
|
}
|
|
|
|
public IEnumerator MoveTo(Vector3 targetPos, float duration)
|
|
{
|
|
var tweenerCore = _spriteRenderer.transform.DOMove(targetPos, duration);
|
|
if (!tweenerCore.IsComplete())
|
|
{
|
|
yield return null;
|
|
}
|
|
}
|
|
}
|
|
} |