UI 系统

This commit is contained in:
2026-06-08 11:26:17 +08:00
parent 1897658a00
commit b582317692
94 changed files with 33540 additions and 3726 deletions

View File

@@ -0,0 +1,41 @@
using UnityEngine;
namespace BaseGames.UI
{
/// <summary>
/// 图鉴数据表(策划单表编辑,仿 <see cref="AbilityMetaSO"/>)。每条目对应一个敌人,
/// 以 <c>enemyId</c> 与 <c>EnemyBase._enemyId</c> 关联。自包含显示数据(名/图标/描述),
/// 不引用敌人程序集BaseGames.UI 不依赖 BaseGames.Enemies故显示数据放此处
/// 改本表即增删 / 重排敌人条目、改名/图标,零代码。
/// </summary>
[CreateAssetMenu(menuName = "BaseGames/UI/Bestiary Database", fileName = "UI_BestiaryDatabase")]
public class BestiaryDatabaseSO : ScriptableObject
{
public enum Tier { Normal, Elite, Boss }
[System.Serializable]
public struct Entry
{
[Tooltip("敌人唯一 ID须与 EnemyBase._enemyId 一致(如 Enemy_SpiderGuard。解锁靠此 id 匹配。")]
public string enemyId;
[Tooltip("敌人名本地化 KeyUI 表,如 ENM_E001_NAME。")]
public string displayNameKey;
[Tooltip("敌人描述 / 背景本地化 Key可空。")]
public string descKey;
[Tooltip("敌人肖像(可空)。")]
public Sprite icon;
[Tooltip("分级(普通 / 精英 / Boss用于分类与排序。")]
public Tier tier;
[Tooltip("所属区域 ID可空用于筛选。")]
public string region;
[Tooltip("解锁完整词条所需累计击杀数(<=1 即首杀全解锁)。")]
public int fullLoreKillCount;
[Tooltip("展示用最大生命策划手填0 = 不显示)。")]
public int displayMaxHP;
}
[SerializeField] private Entry[] _entries;
public Entry[] Entries => _entries;
}
}