Event Handler 사용법

vednuyk·2025년 12월 11일

Unity

목록 보기
28/29

A 기능이 발동될때 여러 기능이 동시에 발현 되길 원한다면 유용한 방법


C# event EventHandler

.NET(C#) 표준 이벤트 시스템. System 네임스페이스를 사용.

  • 장점: 코드상에서 구독(+=)과 해지(-=)가 명확하여 프로그래머가 로직 흐름을 완벽하게 제어할 수 있습니다.

  • 단점: 인스펙터에 보이지 않으므로, 어떤 스크립트가 이 이벤트를 듣고 있는지 확인하려면 코드를 뒤져봐야 한다는 점..?

  • 형식: EventHandler는 관례적으로 (object sender, EventArgs e) 형태의 파라미터를 강제 (최근에는 좀 더 간편한 System.Action을 더 많이 쓰는 추세라고도 하넴.)

using UnityEngine;
using System; // 필수

public class PlayerHealth : MonoBehaviour
{
    // 인스펙터에 안 보임! 코드로만 연결 가능
    public event EventHandler OnPlayerDied; 

    public void Die()
    {
        // 구독자가 있는지 확인(?.) 후 실행(Invoke)
        // this: 이 이벤트를 보낸 사람, EventArgs.Empty: 추가 데이터 없음
        OnPlayerDied?.Invoke(this, EventArgs.Empty);
    }
}
profile
Hi, I'm game developer :)

0개의 댓글