2026-05-13 20:46:36 +08:00

81 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using Logic.Multilingual;
using UnityEngine;
public enum StaffTitleEnum
{
None,
CoreTeam,
GameDesign,
GameArt,
ArtSupport,
GameDesignSupport,
LocalizationSupport,
MusicSound,
SpecialThanks,
GameUI,
}
[Serializable]
[CreateAssetMenu(fileName = "StaffDataAssets", menuName = "TH1 Game Data/Staff Data Asset")]
public class StaffDataAssets : ScriptableObject
{
// 头衔配置: 每个 StaffTitleEnum 对应一个多语言显示名(如 "核心团队" / "Core Team")
public List<StaffTitleInfo> StaffTitleInfoList = new List<StaffTitleInfo>();
// 名单本体: 每个成员一行
public List<StaffItem> StaffList = new List<StaffItem>();
/// <summary>
/// 通过头衔枚举查询头衔信息(显示名)
/// </summary>
public bool GetStaffTitleInfo(StaffTitleEnum title, out StaffTitleInfo info)
{
info = null;
foreach (var t in StaffTitleInfoList)
{
if (t.Title == title)
{
info = t;
return true;
}
}
return false;
}
/// <summary>
/// 按头衔分组取出名单(按 StaffList 原顺序保留)
/// </summary>
public List<StaffItem> GetStaffItemsByTitle(StaffTitleEnum title)
{
var ret = new List<StaffItem>();
foreach (var s in StaffList)
{
if (s.Title == title) ret.Add(s);
}
return ret;
}
}
[Serializable]
public class StaffTitleInfo
{
public StaffTitleEnum Title;
[MultilingualField]
public string Name;
}
[Serializable]
public class StaffItem
{
public StaffTitleEnum Title;
[MultilingualField]
public string Name;
[MultilingualField]
public string Desc;
}