Event Handler 예시코드
어떤 기능을 구현할때 하나의 코드를 등록/해제하는 형태로 Event를 처리하는 방법으로
간단하게 시간에 대한 처리를 하는데 해당 시간에 대한 처리가 여러가지 화면에서 같이 처리가 되어야하는 경우(오차가 없는 형태로 처리가 필요한 경우)에 유용하게 사용이 가능하다.
반응형
<예시코드>
using UnityEngine;
using System;
public class CustomEventArgs : EventArgs
{
public TimeSpan EventTime { get; private set; }
public CustomEventArgs(TimeSpan eventTime)
{
EventTime = eventTime;
}
}
public class EventManager : MonoBehaviour
{
// 이벤트 정의
public event EventHandler<CustomEventArgs> OnMyEvent;
void Start()
{
// 예시로 OnMyEvent에 이벤트 핸들러를 추가합니다.
OnMyEvent += MyEventHandler;
}
void Update()
{
// 예시로 매 프레임마다 특정 조건을 체크하고 이벤트를 발생시킵니다.
if (Input.GetKeyDown(KeyCode.Space))
{
TriggerEvent();
}
}
void TriggerEvent()
{
// 등록된 이벤트 핸들러가 있다면 실행합니다.
OnMyEvent?.Invoke(this, new CustomEventArgs(TimeSpan.FromSeconds(Time.time)));
}
void MyEventHandler(object sender, CustomEventArgs e)
{
Debug.Log("My event was triggered at time: " + e.EventTime);
// 여기에 실행할 액션을 작성합니다.
}
}
public class AnotherScript : MonoBehaviour
{
void Start()
{
// EventManager에 있는 이벤트에 핸들러 추가
FindObjectOfType<EventManager>().OnMyEvent += HandleMyEvent;
}
void HandleMyEvent(object sender, CustomEventArgs e)
{
Debug.Log("AnotherScript: My event was triggered at time: " + e.EventTime);
// 여기에 추가적인 로직을 작성할 수 있습니다.
}
}
C# EventHandler 대리자 : [링크]
★☆☆☆☆
반응형
'개발 > 기본) 기본기' 카테고리의 다른 글
기본기) Easing (이징) (0) | 2024.03.27 |
---|---|
기본기)C#) String Token을 int[] Array 변경 (0) | 2024.03.25 |
기본기) 조건문 반전(Invert if statement) (0) | 2024.03.20 |
기본기) 패턴 매칭 (Pattern Matching ) (5) | 2024.03.18 |
기본기) Guard Clause(Guard Statement) (0) | 2024.03.18 |
댓글