81 lines
1.8 KiB
C#
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;
|
|
}
|