반응형
Delegate 단점
설계적인 부분에서 볼때 Delegate객체를 접근할 수 있으면 호출을 아무나 할 수 있다는 단점이 있다. 이러한 단점을 보완하기위해 Delegate을 mapping하는 Event가 있다.
1. Publisher
01 event처리를 위한 delegate 선언
public delegate void SampleEventHandler(object sender, SampleEventArgs e);
public delegate void OnInputKey();
02 event 선언
public event SampleEventHandler SampleEvent;
public event OnInputKey InputKey;
OnInputKey -> Delegate
InputKey -> Event name
03 event 테스트 선언
public void Update()
{
if (Console.KeyAvailable == false)
return;
ConsoleKeyInfo info = Console.ReadKey();
if(info.Key == ConsoleKey.A)
{
// 이벤트가 발생
InputKey();
}
}
2. Subscriber
01 구독자의 이벤트가 발생했을때 실행할 함수
static void OnInputTest()
{
Console.WriteLine("Input Received");
}
02 구독 신청(이벤트 연결)
inputManager inputManager = new inputManager();
inputManager.InputKey += OnInputTest;
03 구독자에게 알림
while(true)
{
inputManager.Update();
}
본 게시글은 MMORPG Part1을 수강하고 정리한 글입니다.
반응형
'유니티 공부 > C# 문법' 카테고리의 다른 글
C# 문법 - exception (0) | 2023.04.19 |
---|---|
C# 문법 - Lambda, Func, Action (0) | 2023.04.19 |
C# 문법 - Delegate(대리자) (0) | 2023.04.16 |
C# 문법 - property(프로퍼티) (0) | 2023.04.16 |
C# 문법 - virtual vs abstract vs interface (0) | 2023.04.16 |
댓글