반응형
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 |
---|