그 땐 IT활동했지/그 땐 멋쟁이사자처럼했지

[멋쟁이사자처럼 X 넥슨] MOD Suppoters Hackathon 3주차 7/20일 회고 | 08 Event와 컴포넌트 확장

루이란 2022. 7. 20. 21:50
728x90

Event 시스템


📌Event: 객체와 객체 간에 주고 받는 형식

📌Entity Event System: MOD에서 이벤트 시스템을 쉽게 활용할 수 있도록 제공하는 API

  • Event
  • Handler
  • Sender

 

LogEvent


📌우리가 이름을 붙이는 Event

 

👉🏻Event 생성 과정

  1. LogEvent 객체 생성
  2. LogEvent에 message property 생성
  3. myComponent 생성 및 Handler와 function 추가

👉🏻Log로 Event 주고받는 과정

  1. 자신이 엔티티 쪽으로 이벤트를 쏨
  2. 로그 이벤트 받겠다는 핸들러 → 자신의 엔티티 쪽으로 등록

 

핸들러 등록 구조


이벤트를 주고 받을 때


👉🏻같은 엔티티에서 이벤트를 주고 받을 때

  1. component1이 특정 타이밍에 의해 엔티티로 발송
  2. 로그 이벤트를 수신하겠다고 등록한 컴포넌트들에게 이벤트 발송
  3. 해당 컴포넌트들은 이벤트를 받아서 처리

 

👉🏻다른 엔티티에서 이벤트를 주고 받을 때

  1. 신호를 보내는 엔티티 쪽에서 component들이 이벤트 발송
  2. 받는 엔티티 쪽에서 신호를 받고 이벤트 수행

 

이벤트 처리


👉🏻이벤트 처리 순서

  1. 이벤트를 처리할 컴포넌트 & 엔티티 생성
  2. 핸들러 로직 추가
  3. 이벤트 발생 로직 추가

 

Entity


📌_SpawnService: 엔티티를 생성할 수 있는 함수

  • SpawnByEntityTemplate
  • SpawnByModelId

📌_EntityService: Destroy / Entity:Destroy: 엔티티를 삭제할 때 사용한다.

 

📌isvalid: 유효성을 체크한다.

728x90