본문 바로가기

Unity/구현

[Unity 유니티] 2D 피격 이펙트 구현하기

2D 게임에서 적이나 플레이어가 피격될 때의 효과는 게임의 몰입감을 높이는 중요한 요소다. 이번 글에서는 간단한 2D 피격 이펙트를 Unity에서 구현하는 방법을 소개한다.


1. 간단한 코드 구현

이 코드를 사용하면 피격 시 스프라이트가 하얗게 변했다가 원래대로 돌아오게 된다.

using UnityEngine;

public class HitEffect : MonoBehaviour
{
    private SpriteRenderer spriteRenderer;
    private Color originalColor;
    public Color hitColor = Color.white; // 피격 시 스프라이트 색상
    public float effectDuration = 0.1f; // 효과 지속 시간

    private void Start()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
        originalColor = spriteRenderer.color;
    }

    public void TriggerEffect()
    {
        StopAllCoroutines(); // 이전 효과가 남아있다면 초기화
        StartCoroutine(HitFlash());
    }

    private System.Collections.IEnumerator HitFlash()
    {
        spriteRenderer.color = hitColor;
        yield return new WaitForSeconds(effectDuration);
        spriteRenderer.color = originalColor;
    }
}

2. 사용 방법

public class Enemy : MonoBehaviour
{
    private HitEffect hitEffect;

    private void Start()
    {
        hitEffect = GetComponent<HitEffect>();
    }

    public void TakeDamage()
    {
        hitEffect.TriggerEffect();
        // 추가 로직: 체력 감소, 사망 처리 등
    }
}

파티클을 추가한다면 퀄리티를 높일 수 있다.