Event Handler 사용법

devKyoun·3일 전

Unity

목록 보기
28/28
  1. C# event EventHandler
    .NET(C#) 표준 이벤트 시스템입니다. System 네임스페이스를 사용합니다.
  • 장점: 성능이 가장 좋습니다. 코드상에서 구독(+=)과 해지(-=)가 명확하여 프로그래머가 로직 흐름을 완벽하게 제어할 수 있습니다.

  • 단점: 인스펙터에 보이지 않으므로, 어떤 스크립트가 이 이벤트를 듣고 있는지 확인하려면 코드를 뒤져봐야 합니다(Visual Studio의 'Find All References' 등 활용).

  • 형식: 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
Game Developer

0개의 댓글