using System; using UnityEngine; public enum CellType { /// /// 无效格 /// None = 0, /// /// 移动 /// Move = 1, /// /// 阻挡 /// Obstacle = 2, /// /// 隐藏 /// Hide = 4, /// /// 有角色占据(运行时动态变化时产生) /// HadRole = 8, /// /// 安全区 /// Safe = 16, /// /// 摆摊区域 /// Stall = 32, Audio = 64, //音效 Trigger = 128, //触发 Monster = 256 //怪物 } //[Flags] //public enum CellLayer //{ // None = 0, //无效格子 // Move = 1, //移动 // Obstacle = 2, //阻挡 // Hide = 4, //隐藏 // Safe = 16, //安全区 // Stall = 32, //摆摊 // Audio = 64, //音效 // Trigger = 128, //触发 // Monster = 256 //怪物 //} /// /// 区域颜色 /// public class AreaColor { public static Color Monster = Color.red; public static Color Npc = Color.yellow; public static Color Stall = Color.magenta; public static Color Relive = Color.green; public static Color Audio = Color.white; public static Color Trans = Color.blue; public static Color Born = Color.green; } public class CellTypeColors { public static Color None = new Color(0xb0 / 255f, 0xb0 / 255f, 0xb0 / 255f,0); // 浅灰色 (#b0b0b0) public static Color Move = new Color(0x00 / 255f, 0xff / 255f, 0x00 / 255f); // 鲜绿色 (#00ff00) public static Color Obstacle = new Color(0xff / 255f, 0x00 / 255f, 0x00 / 255f); // 鲜红色 (#ff0000) public static Color Hide = new Color(0x80 / 255f, 0x00 / 255f, 0xff / 255f); // 深紫色 (#8000ff) public static Color Safe = new Color(0x00 / 255f, 0xff / 255f, 0xff / 255f); // 亮青色 (#00ffff) public static Color Stall = new Color(0xff / 255f, 0x80 / 255f, 0x00 / 255f); // 鲜橙色 (#ff8000) public static Color GetColor(CellType cellType) { Color color = Color.clear; // 初始化为黑色,如果没有匹配类型时返回 if (cellType == CellType.None) return CellTypeColors.None; if (cellType.HasFlag(CellType.Move)) color += CellTypeColors.Move * 0.6f; if (cellType.HasFlag(CellType.Obstacle)) color += CellTypeColors.Obstacle * 0.6f; if(UICellEditor.Instance == null) return color; if (UICellEditor.Instance.editorGrid == CellType.Hide) { if (cellType.HasFlag(CellType.Hide)) color += CellTypeColors.Hide * 0.8f; } else if (UICellEditor.Instance.editorGrid == CellType.Safe) { if (cellType.HasFlag(CellType.Safe)) color += CellTypeColors.Safe * 0.8f; } else if (UICellEditor.Instance.editorGrid == CellType.Stall) { if (cellType.HasFlag(CellType.Stall)) color += CellTypeColors.Stall * 0.8f; } // 确保颜色值不超过1 color.r = Mathf.Clamp01(color.r); color.g = Mathf.Clamp01(color.g); color.b = Mathf.Clamp01(color.b); color.a = 1f; // 确保不透明 return color; } public static string GetAreaStr(int barrier) { string areaStr = " "; CellType cellType = (CellType)(barrier & 0xffff); if (cellType == CellType.None) { areaStr = "无效格子"; return areaStr; } if (cellType.HasFlag(CellType.Move)) areaStr += "可移动"; if (cellType.HasFlag(CellType.Obstacle)) areaStr += "|阻隔点"; if (cellType.HasFlag(CellType.Safe)) areaStr += "|安全区"; if (cellType.HasFlag(CellType.Stall)) areaStr += "|摆摊区"; return areaStr; } }