Unity/실전 유니티 예제

Unity C# Event_ 유니티 C# 이벤트 예제

minquu 2022. 8. 2. 20:06
반응형

Event - 이벤트?

👉 이벤트는 클래스 내에서 특정한 일이 일어났을을 외부의 이벤트 가입자들에게 알려주는 기능

 

이벤트를 발생시키는 것은 델리게이트를 정의해서 메서드를 간접 호출

메서드 호출에 유연성을 가질 수 있음

전체적으로 사용법은 델리게이트와 비슷하지만, 실행은 오직 클래스 안에서만 가능함

 

 

0️⃣ 기본형

    //이벤트 정의
    public event EventHandler Click;

    //이벤트 구독
    btn.Click += new EventHandler(ButtonClick);

    //이벤트 호출
    Click(this, EventArgs.Empty);

 

//C# Event를 사용하기 위해선 System; 를 사용해줘야함
using System;
using UnityEngine;

public class MyButton
{
    //이벤트 정의
    public event EventHandler Click;

    //함수 정의해주기
    public void MouseButtonDown()
    {
        //이벤트가 구독 되어 있으면 실행해줌
        if (this.Click != null)
        {
            //이벤트를 호출 시켜주는 곳
            Click(this, EventArgs.Empty);
        }
    }
}

public class CEventBasic : MonoBehaviour
{
    private void Start()
    {
        //MyButton를 인스턴스해준다.
        MyButton btn = new MyButton();
        //btn Click 이벤트에 ButtonClick 메서드를 넣어줌
        btn.Click += new EventHandler(ButtonClick);
        //MouseButtonDown를 호출해준다.
        //MyButton 클래스에서 Click 이벤트를 호출 해줄 것이다.
        btn.MouseButtonDown();
    }

    //버튼 클릭스 진행되는 메서드
    void ButtonClick(object sender, EventArgs e)
    {
        Debug.Log("버튼이 클릭 되었습니다!");
    }
}

스타트 시 이벤트 호출 됨

반응형

'Unity > 실전 유니티 예제' 카테고리의 다른 글

Unity Delegate_ 유니티 델리게이트 예제  (0) 2022.07.22