1
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
|
||||
public class ConstEventString
|
||||
{
|
||||
public const string SyncGameData_Rotate = "SyncGameData_Rotate";
|
||||
public const string SyncGameData_FireBullet = "SyncGameData_FireBullet";
|
||||
// SyncGameData_CreateFish 已废弃:鱼创建改由服务端 OnFishSpawn 事件下发
|
||||
public const string SyncGameData_ChangeTargetMonster = "SyncGameData_ChangeTargetMonster";
|
||||
public const string SyncGameData_RendromDieFish = "SyncGameData_RenderDieFish";
|
||||
public const string SyncGameData_TurretState = "SyncGameData_TurretState";
|
||||
public const string SyncGameData_ChangeTurret = "SyncGameData_ChangeTurret";
|
||||
public const string SyncGameData_FreezeFish = "SyncGameData_FreezeFish";
|
||||
public const string SyncGameData_ChangeCannonMultiple = "SyncGameData_ChangeCannonMultiple";
|
||||
public const string SyncGameData_ChangeWing = "SyncGameData_ChangeWing";
|
||||
/// <summary>战神切换帧同步(changeZhanShen):其他玩家装备/卸下战神,对应座位加载/清除战神模型</summary>
|
||||
public const string SyncGameData_ChangeZhanShen = "SyncGameData_ChangeZhanShen";
|
||||
/// <summary>表情包帧同步(biaoQing):某玩家发送表情(spine动画/文字),对应座位显示表情</summary>
|
||||
public const string SyncGameData_BiaoQing = "SyncGameData_BiaoQing";
|
||||
public const string SyncGameData_BotFireAngle = "SyncGameData_BotFireAngle";
|
||||
// SyncGameData_RequestSyncFish 已废弃:鱼同步改由服务端 OnFishSpawn(type=sync) 下发
|
||||
/// <summary>爆奖结束帧同步(baoJiangEnd):某玩家爆奖流程完成,其他客户端显示最终 BJEndUI 并加分</summary>
|
||||
public const string BaoJiangEnd = "BaoJiangEnd";
|
||||
/// <summary>钻头蟹/激光蟹释放帧同步(zuanTouRelease):击杀者点击(或超时)发射,所有客户端(含击杀者回广播)统一时刻发射钻头/激光</summary>
|
||||
public const string SyncGameData_ZuanTouRelease = "SyncGameData_ZuanTouRelease";
|
||||
/// <summary>加金币帧同步(addGold):刮刮卡等 HTTP 途径获得金币后广播,各客户端给对应座位加金币并刷新显示</summary>
|
||||
public const string SyncGameData_AddGold = "SyncGameData_AddGold";
|
||||
|
||||
// ================================================================
|
||||
// 服务端 → 客户端事件 (新协议)
|
||||
// ================================================================
|
||||
/// <summary>服务端出鱼事件(破坏性替代 createFish 帧同步)</summary>
|
||||
public const string OnFishSpawn = "OnFishSpawn";
|
||||
/// <summary>鱼列表刷新</summary>
|
||||
public const string OnFishList = "OnFishList";
|
||||
/// <summary>冰冻道具生效(40003),鱼存活时间延长 15 秒,客户端写死 15s 倒计时</summary>
|
||||
public const string FishFrozen = "FishFrozen";
|
||||
/// <summary>玩家挂机通知</summary>
|
||||
public const string PlayerAfkNotice = "PlayerAfkNotice";
|
||||
/// <summary>玩家取消挂机通知</summary>
|
||||
public const string PlayerCancelAfkNotice = "PlayerCancelAfkNotice";
|
||||
/// <summary>玩家信息同步(GetPlayerInfo 的新响应,含完整玩家数据)</summary>
|
||||
public const string OnPlayerInfo = "OnPlayerInfo";
|
||||
/// <summary>召唤卡召唤通知:某玩家使用召唤卡,服务端已创建召唤鱼(实际鱼由 OnFishSpawn 下发)</summary>
|
||||
public const string SummonCardFishNotice = "SummonCardFishNotice";
|
||||
/// <summary>全局击杀公告(真人击杀/机器人模拟)</summary>
|
||||
public const string KillNotice = "KillNotice";
|
||||
/// <summary>机器人退出房间</summary>
|
||||
public const string BotLeaveRoomNotice = "BotLeaveRoomNotice";
|
||||
/// <summary>房主断线,其他玩家可接受机器人控制权</summary>
|
||||
public const string HostDisconnect = "HostDisconnect";
|
||||
/// <summary>座位变更</summary>
|
||||
public const string OnSeatChange = "OnSeatChange";
|
||||
/// <summary>房主控制权移交</summary>
|
||||
public const string ChangeControllerUser = "ChangeControllerUser";
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a12b4d76c42f8d49b6af72e52653bb3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,89 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public interface IEventInfo{
|
||||
}
|
||||
|
||||
public class EventInfo<T>:IEventInfo
|
||||
{
|
||||
public UnityAction<T> actions;
|
||||
public EventInfo(UnityAction<T> action)
|
||||
{
|
||||
actions += action;
|
||||
}
|
||||
}
|
||||
public class EventInfo : IEventInfo
|
||||
{
|
||||
public UnityAction actions;
|
||||
public EventInfo(UnityAction action)
|
||||
{
|
||||
actions += action;
|
||||
}
|
||||
}
|
||||
public class EventCenter : Singleton<EventCenter>
|
||||
{
|
||||
private Dictionary<string, IEventInfo> eventDic
|
||||
= new Dictionary<string, IEventInfo>();
|
||||
|
||||
public void AddEventListener<T>(string name,UnityAction<T> action)
|
||||
{
|
||||
if(eventDic.ContainsKey(name))
|
||||
{
|
||||
(eventDic[name] as EventInfo<T>).actions += action;
|
||||
}
|
||||
else
|
||||
{
|
||||
eventDic.Add(name, new EventInfo<T>(action));
|
||||
}
|
||||
}
|
||||
|
||||
public void AddEventListener(string name, UnityAction action)
|
||||
{
|
||||
if (eventDic.ContainsKey(name))
|
||||
{
|
||||
(eventDic[name] as EventInfo).actions += action;
|
||||
}
|
||||
else
|
||||
{
|
||||
eventDic.Add(name, new EventInfo(action));
|
||||
}
|
||||
}
|
||||
|
||||
public void EventTrigger<T>(string name,T info)
|
||||
{
|
||||
if(eventDic.ContainsKey(name))
|
||||
{
|
||||
(eventDic[name] as EventInfo<T>).actions?.Invoke(info);
|
||||
}
|
||||
}
|
||||
public void EventTrigger(string name)
|
||||
{
|
||||
if (eventDic.ContainsKey(name))
|
||||
{
|
||||
(eventDic[name] as EventInfo).actions?.Invoke();
|
||||
}
|
||||
}
|
||||
public void RemoveEventListener<T>(string name, UnityAction<T> action)
|
||||
{
|
||||
if (eventDic.ContainsKey(name))
|
||||
{
|
||||
//移除这个委托
|
||||
(eventDic[name] as EventInfo<T>).actions -= action;
|
||||
}
|
||||
}
|
||||
public void RemoveEventListener(string name, UnityAction action)
|
||||
{
|
||||
if (eventDic.ContainsKey(name))
|
||||
{
|
||||
//移除这个委托
|
||||
(eventDic[name] as EventInfo).actions -= action;
|
||||
}
|
||||
}
|
||||
public void Clear()
|
||||
{
|
||||
eventDic.Clear();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ae1cccb3b95b50f489c0aa9af1b41cb0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user