using System.Collections.Generic; using UniFramework.Event; using UnityEngine; namespace Game.EventDefine { public static class GameEventDefine { /// /// 变化金币 /// public class OverlyCoin : IEventMessage { public bool hasEcho; public int overlyCoin; public static void SendMessage (int overlyCoin , bool echo = false) => UniEvent.SendMessage (new OverlyCoin () { hasEcho = echo, overlyCoin = overlyCoin }); } public class GlobalRunaway : IEventMessage { public float Duration { get; private set; } private GlobalRunaway () { } public static void SendMessage (float duration) => UniEvent.SendMessage (new GlobalRunaway () { Duration = duration }); } /// /// 改变游戏状态 /// public class ChangeGameFsm : IEventMessage { public GameState State { get; private set; } public object[] Args { get; private set; } private ChangeGameFsm () { } public static void SendMessage (GameState state , params object[] args) { var changeGameFsm = new ChangeGameFsm { State = state , Args = args }; UniEvent.SendMessage (changeGameFsm); } } public class ShowTextHub : IEventMessage { public string text; public RectTransform rectTransform; public Vector2 extDistance; public Vector3 Position { //将rectTransform的对应方向点转换为世界坐标 get { var pos = rectTransform.position; return pos + new Vector3 (this.extDistance.x , this.extDistance.y , 0); } } private ShowTextHub () { } public static void SendMessage (string text , RectTransform rectTransform , Vector2 extDistance = default) { var showTextHub = new ShowTextHub { text = text, rectTransform = rectTransform, extDistance = extDistance }; UniEvent.SendMessage (showTextHub); } } public class ShowTipBox : IEventMessage { public string tipText; public string content; public RectTransform box; public Vector2 extDistance; private ShowTipBox () { } public static void SendMessage (string tipText , string content, RectTransform box, Vector2 extDistance = default) { var showTipBox = new ShowTipBox { tipText = tipText, content = content, box = box, extDistance = extDistance }; UniEvent.SendMessage (showTipBox); } } } }