Degulleo3D/Assets/JAY/Scripts/Effect/PlayerHitEffectController.cs

49 lines
1.1 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerHitEffectController : MonoBehaviour
{
[SerializeField] private Image hitFlashImage;
private float flashDuration = 0.7f;
private Color flashColor = new Color(1, 0, 0, 0.7f); // 반투명 빨간색
private Coroutine flashCoroutine;
private void Start()
{
hitFlashImage.color = Color.clear; // 처음에는 투명함
}
public void PlayHitEffect()
{
if (flashCoroutine != null)
{
StopCoroutine(flashCoroutine);
}
flashCoroutine = StartCoroutine(FlashRoutine());
}
private IEnumerator FlashRoutine()
{
// 일단 바로 최대 알파로 세팅
hitFlashImage.color = flashColor;
float timer = 0f;
while (timer < flashDuration)
{
timer += Time.deltaTime;
// 알파만 줄이기
Color c = flashColor;
c.a = Mathf.Lerp(flashColor.a, 0, timer / flashDuration);
hitFlashImage.color = c;
yield return null;
}
hitFlashImage.color = Color.clear;
}
}