public static void AddEvent(string event_name, XFEvent callback)
注册事件(注册没有参数的回调)
名称 | 说明 |
---|---|
eventName | 事件名称 |
callback | 回调 |
using UnityEngine; public class TestEventManager : MonoBehaviour { private void Start() { // 注册事件 EventManager.AddEvent("OnUserInfoChange", OnUserInfoChange); } private void OnUserInfoChange() { // TODO } }
public static void AddEvent(int event_name_hash, XFEvent callback)
注册事件(回调函数没有参数)
事件名称为int类型, 效率更高
名称 | 说明 |
---|---|
event_name_hash | 事件名称的hash值 |
callback | 回调 |
public static void AddEvent<T1>(string event_name, XFEvent<T1> callback)
注册事件(回调函数1个参数)
*注: 注册的回调函数的参数,必须与触发事件传递的参数保持一致,否则会触发异常!
名称 | 说明 |
---|---|
T1 | 回调函数的参数类型 |
event_name | 事件名称 |
callback | 回调 |
using UnityEngine; public class TestEventManager : MonoBehaviour { private void Start() { // 注册事件 (注册有一个参数 且 类型为int的回调) EventManager.AddEvent<int>("OnUserInfoChange", OnUserInfoChange); } private void OnUserInfoChange(int a) { // TODO } }
回调最多支持7个参数,如果回调参数超过7建议封装成类或结构体进行传递,其余数量的参数回调用法与上面代码示例基本一致!
需要注意的一点是,一个事件注册的回调类型必须保持一致,否则会触发异常! 如下:
using UnityEngine; public class TestEventManager : MonoBehaviour { private void Start() { // 注册事件 (注册有一个参数 且 类型为int的回调) EventManager.AddEvent<int>("OnUserInfoChange", Callback1); EventManager.AddEvent<float>("OnUserInfoChange", Callback2); // 此时 OnUserInfoChange 这个事件注册了两个回调监听 , 但是第一个注册的回调参数类型为 int 第二个是float ,两个不一致, 所以在注册第二个的时候会触发异常 // 同一个事件 , 只能注册一种类型的回调 } private void Callback1(int a) { // TODO } private void Callback2(float a) { // TODO } }
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )