Metaverse/Unity

Event

onenewkong 2023. 8. 31. 18:39

 

Win API 동작구조

  • WinMain() 함수를 통해 윈도우 응용 프로그램이 시작됨
  • 사용자 입력 이벤트는 모두 메세지로 전환됨
  • 윈도우 운영체제는 이벤트에 따른 메세지를 메세지 큐에 추가
  • 메인 메세지 루프는 메세지 큐에서 메세지를 꺼내서 처리 (FIFO 구조)
  • 윈도우 종료 메세지를 처리하면 메인 메세지 루프가 종료되고 응용 프로그램도 종료됨

 

C#에서 이벤트 작성 과정

  • 이벤트 발생 시 처리해줄 메서드 작성 (이벤트 핸들러)
  • 이벤트 핸들러의 형태와 일치하는 델리게이트 선언 (System.EventHandler 델리게이트를 사용하면 이 과정 생략됨)
  • 이벤트 선언 (미리 정의된 이벤트인 경우 이 과정 생략됨)
  • 이벤트에 이벤트 처리기 등록
  • 이벤트 발생

 

이벤트와 대리자의 차이점

: 이벤트는 외부에서 직접 사용할 수 없음

  • 이벤트는 public 한정자로 선언되어 있어도 자신이 선언된 클래스 외부에서는 호출이 불가능함
  • 대리자는 public이나 internal로 수식되어 있으면 클래스 외부에서라도 얼마든지 호출이 가능함
  • 대리자는 콜백 용도로 사용, 이벤트는 객체의 상태 변화나 사건의 발생을 알리는 용도로 사용

 

'Metaverse > Unity' 카테고리의 다른 글

RPG Project - Inventory  (0) 2023.10.14
RPG Project - Event  (0) 2023.09.16
RPG Project 오류 일지 - Respawn  (0) 2023.08.15
Scriptable Object  (0) 2023.07.24
디자인 패턴 요약  (0) 2023.07.24