Game_CodeMM/Assets/00_scripts/Events/EventSvcForExample.cs

70 lines
2.7 KiB
C#
Raw Normal View History

2025-11-18 17:11:25 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EventSvcForExample : MonoBehaviour
{
// ================================
// 1. 定义事件类型和结构体 (EVENT_STRUCT)/(EVENT_ENUM)
// ================================
// private enum EVENT_REGISTER_EVENT_ENUM_EXAMPLE
// {
// EVENT_LET_OS_FOR_EXAMPLE, // 系统发牌
// }
// ================================
// 2. 绑定事件 (EventSvcHandler)
// ================================
// private readonly Dictionary<EVENT_ENUM, Type> actionBindMap = new() // 事件类型类型绑定
// {
// // ========== 系统事件 ==========
// { EVENT_ENUM.EVENT_LET_OS_DEAL_CARD, typeof(EVENT_STRUCT.STRUCT_EVENT_OS_DEAL_CARD) }, // 系统发牌事件
//
// // ========== 卡牌事件 ==========
// { EVENT_ENUM.EVENT_LET_CARD_DRAW_CARD, typeof(EVENT_STRUCT.STRUCT_EVENT_CARD_DRAW_CARD) } // 卡牌抽牌事件
// };
// ================================
// 3. 注册事件
// ================================
// private void REGISTER_EVENT_drop_card() // 系统弃牌
// {
// EventOS.EVENT_REGISTER<bool>(EVENT_ENUM.EVENT_LET_OS_DROP_CARD, callback);
// return;
// void callback(bool placeholder)
// {
// if (EventOS.LOCK_GET(EVENT_EXCLUSIVE_LOCK.LOCK_OS_DEAL_CARD)) return; // 系统是否正在发牌
// if (!EventOS.LOCK_APPLY(EVENT_EXCLUSIVE_LOCK.LOCK_OS_DROP_CARD)) return; // 系统弃牌加锁失败
// StartCoroutine(coroutine());
// return;
//
//
// IEnumerator coroutine()
// {
// if (handCardList.Count > 0)
// {
// // for (var i = handCardList.Count; i >= 0; i--)
// for (var i = 0; i < handCardList.Count; i++)
// {
// EventOS.EVENT_TRIGGER(EventData.EVENT_REGISTER_EVENT_ENUM.EVENT_LET_CARD_DROP_SELF,
// new EventStruct.STRUCT_EVENT_DROP_CARD
// {
// ID = i,
// POSITION = drop_card_point_world_position,
// DURATION = cardDropDuration,
// });
// yield return new WaitForSeconds(cardDropDuration);
// }
// }
//
// handCardList.Clear(); // 清空
// EventOS.LOCK_RELEASE(EventLock.LOCK_EXCLUSIVE_CARD_ENUM.LOCK_OS_DROP_CARD);
// // REGISTER_EVENT_ENEMY_TURN_START();
// }
// }
// }
}