100 lines
2.4 KiB
C#
100 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Logic.Multilingual;
|
|
|
|
[Serializable]
|
|
[CreateAssetMenu(fileName = "MusicDataAssets", menuName = "TH1 Game Data/Music Data Asset")]
|
|
public class MusicDataAssets : ScriptableObject
|
|
{
|
|
public List<MusicInfo> MusicDataList = new List<MusicInfo>();
|
|
|
|
[NonSerialized]
|
|
private bool _initialized = false;
|
|
|
|
/// <summary>
|
|
/// 通过 MusicName(对应AudioManager的key, 如 "RemiliaEgyptian") 查询信息
|
|
/// </summary>
|
|
public bool GetMusicInfo(string musicName, out MusicInfo info)
|
|
{
|
|
info = null;
|
|
if (string.IsNullOrEmpty(musicName)) return false;
|
|
foreach (var t in MusicDataList)
|
|
{
|
|
if (t.MusicName == musicName)
|
|
{
|
|
info = t;
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 通过阵营+文明查询信息(用于在玩家页面快速找到对应BGM)
|
|
/// </summary>
|
|
public bool GetMusicInfo(ForceEnum force, CivEnum civ, out MusicInfo info)
|
|
{
|
|
info = null;
|
|
foreach (var t in MusicDataList)
|
|
{
|
|
if (t.Force == force && t.Civ == civ)
|
|
{
|
|
info = t;
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
[Serializable]
|
|
public class MusicInfo
|
|
{
|
|
[Tooltip("作为唯一Key,需要和AudioManager._clips的key一致(如 RemiliaEgyptian / Main / Story)")]
|
|
public string MusicName;
|
|
|
|
[Tooltip("音乐资源(AudioClip引用)")]
|
|
public AudioClip MusicClip;
|
|
|
|
[Tooltip("封面图")]
|
|
public Sprite CoverSprite;
|
|
|
|
[Tooltip("背景图")]
|
|
public Sprite BackgroundSprite;
|
|
|
|
[MultilingualField]
|
|
[Tooltip("曲名")]
|
|
public string Title;
|
|
|
|
[MultilingualField]
|
|
[Tooltip("原曲名")]
|
|
public string OriginalTitle;
|
|
|
|
[Tooltip("所属阵营(东方角色),非角色BGM填Common")]
|
|
public ForceEnum Force;
|
|
|
|
[Tooltip("所属文明,非文明BGM填Common")]
|
|
public CivEnum Civ;
|
|
|
|
[MultilingualField]
|
|
[Tooltip("作曲")]
|
|
public string Composer;
|
|
|
|
[MultilingualField]
|
|
[Tooltip("编曲")]
|
|
public string Arranger;
|
|
|
|
[MultilingualField]
|
|
[Tooltip("混音")]
|
|
public string Mixer;
|
|
|
|
[MultilingualField]
|
|
[Tooltip("演唱")]
|
|
public string Vocalist;
|
|
|
|
[MultilingualField]
|
|
[Tooltip("曲绘")]
|
|
public string Illustrator;
|
|
}
|