유니티 스크립트

델리게이트 실제 사용

ruripanda 2024. 12. 24. 15:19
 //델리게이트 선언
 public delegate void PlayerDieHandler();
 //이벤트 선언
 public static event PlayerDieHandler OnPlayerDie;

이벤트를 정의하려면 델리게이트를 이용해 이벤트 함수의 원형을 선언해야 된다

이때 이벤트는 언제 호출될지 모르기 때문에 정적(static)키워드를 사용해 서언해야 된다

OnPlayerDie는 이벤트명이라고 하지만 변수의 일종이며 PlayerDieHandler은 ONPlayerDie변수의 타입일 뿐인이다

 

    //스크립트가 활성화 될때마다 호출되는 함수
    void OnEnable()
    {
        //이벤트 발생 시 수행할 함수 연결
        PlayerCtrl.OnPlayerDie += this.OnPlayerDie;
    }

    //스크립트가 비활성화될 때마다 호출되는 함수
    void OnDisable()
    {
        //기존 연결된 함수 해제
        PlayerCtrl.OnPlayerDie -= this.OnPlayerDie;
    }

 

델리게이트 이벤트를 받아올 오브젝트의 함수

OnPlayerDie함수가 실행되게 세팅되어있다