Files

142 lines
4.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEngine;
namespace XericUI.XTable.Core
{
/// <summary>
/// 表格系统全局配置资源——统一管理布局、样式回退值、运行时颜色等参数。
/// 表格组件在 Awake 时自动加载 Resources 中的 "XTableDefaultConfig"
/// 或由外部脚本在初始化阶段显式赋值。
/// </summary>
[CreateAssetMenu(fileName = "XTableConfig", menuName = "Xeric Library/Table/Table Config", order = 100)]
public class XTableConfig : ScriptableObject
{
#region 布局
[Header("布局")]
[Tooltip("新增行时的默认行高(像素)")]
public float DefaultRowHeight = 40f;
[Tooltip("新增列时的默认列宽(像素)")]
public float DefaultColumnWidth = 100f;
[Tooltip("单元格内容水平内边距(左右各此值)")]
public float CellHorizontalPadding = 4f;
#endregion
#region 四叉树
[Header("四叉树")]
[Tooltip("单节点最大单元格数,超过此值强制空间分裂以提升可见性裁剪效率")]
public int QuadtreeMaxCellsPerNode = 64;
#endregion
#region 对象池
[Header("对象池")]
[Min(1)]
[Tooltip("文本池允许创建的对象总上限")]
public int TextPoolMaxCapacity = 256;
[Min(1)]
[Tooltip("图片池允许创建的对象总上限")]
public int ImagePoolMaxCapacity = 256;
[Min(1)]
[Tooltip("预制体池允许创建的实例总上限")]
public int PrefabPoolMaxCapacity = 256;
[Min(1)]
[Tooltip("文本池 cellId 路由桶数量")]
public int TextPoolRouteBucketCount = 256;
[Min(1)]
[Tooltip("图片池 cellId 路由桶数量")]
public int ImagePoolRouteBucketCount = 256;
#endregion
#region 样式回退值
[Header("样式回退值(当 StyleManager 中查不到时使用)")]
[Tooltip("默认样式命名空间")]
public string DefaultStyleNamespace = "xeric_table_default";
[Tooltip("单元格背景色")]
public Color BgColor = new Color(0.18f, 0.18f, 0.18f, 1f);
[Tooltip("单元格前景色(文字颜色)")]
public Color FgColor = new Color(0.05f, 0.05f, 0.05f);
[Tooltip("编辑器选中色")]
public Color SelectionColor = new Color(0.2f, 0.5f, 1f, 0.3f);
[Tooltip("边框颜色")]
public Color BorderColor = new Color(0.35f, 0.35f, 0.35f, 0.5f);
[Tooltip("边框宽度")]
public float BorderWidth = 1f;
[Tooltip("字体大小")]
public int FontSize = 14;
#endregion
#region 运行时颜色
[Header("运行时选中/边框颜色")]
[Tooltip("运行时单选高亮")]
public Color RuntimeSelectionColor = new Color(0.18f, 0.42f, 0.82f, 0.25f);
[Tooltip("运行时多选高亮")]
public Color RuntimeMultiSelectColor = new Color(0.18f, 0.42f, 0.82f, 0.12f);
[Tooltip("运行时焦点高亮(当前选中格)")]
public Color RuntimeFocusColor = new Color(0.22f, 0.55f, 0.95f, 0.35f);
[Tooltip("运行时边框色")]
public Color RuntimeBorderColor = new Color(0.35f, 0.35f, 0.35f, 0.5f);
[Tooltip("运行时边框宽度")]
public float RuntimeBorderWidth = 1f;
#endregion
#region 编辑器多选颜色因子
[Header("编辑器多选/焦点颜色因子(基于 SelectionColor 计算)")]
[Tooltip("多选透明因子")]
[Range(0, 1)] public float MultiSelectAlphaFactor = 0.4f;
[Tooltip("焦点色 R 增量")]
[Range(0, 0.5f)] public float FocusRAdd = 0.04f;
[Tooltip("焦点色 G 增量")]
[Range(0, 0.5f)] public float FocusGAdd = 0.13f;
[Tooltip("焦点色 B 增量")]
[Range(0, 0.5f)] public float FocusBAdd = 0.13f;
[Tooltip("焦点色 Alpha 倍数")]
[Range(0.1f, 3f)] public float FocusAlphaMul = 1.4f;
#endregion
#region 资源路径
/// <summary>Resources 目录下的默认配置文件名(不含扩展名)</summary>
public const string DEFAULT_RESOURCE_PATH = "XTableDefaultConfig";
/// <summary>从 Resources 加载默认配置,若失败则返回 ScriptableObject.CreateInstance 的默认值</summary>
public static XTableConfig LoadOrDefault()
{
var cfg = Resources.Load<XTableConfig>(DEFAULT_RESOURCE_PATH);
if (cfg != null) return cfg;
return CreateInstance<XTableConfig>();
}
#endregion
}
}