35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
using UnityEngine;
|
||
|
||
namespace BaseGames.Player
|
||
{
|
||
/// <summary>
|
||
/// 形态切换配置 ScriptableObject。
|
||
/// 单一资产,forms[0..2] = Sky / Earth / Death(架构 05 §18)。
|
||
/// ⚠️ 只有 1 个 FormConfigSO 资产;FormSO × 3 存于 forms[] 数组中,不分开建立。
|
||
/// </summary>
|
||
[CreateAssetMenu(menuName = "BaseGames/Player/FormConfig")]
|
||
public class FormConfigSO : ScriptableObject
|
||
{
|
||
[Header("形态列表 (forms[0]=Sky, forms[1]=Earth, forms[2]=Death)")]
|
||
public FormSO[] forms;
|
||
|
||
/// <summary>按形态类型查找对应 FormSO;找不到返回 null。</summary>
|
||
public FormSO GetFormByType(FormType type)
|
||
{
|
||
if (forms == null) return null;
|
||
foreach (var f in forms)
|
||
if (f != null && f.formType == type) return f;
|
||
return null;
|
||
}
|
||
|
||
/// <summary>返回指定 FormSO 在 forms 数组中的索引;找不到返回 -1。</summary>
|
||
public int GetFormIndex(FormSO form)
|
||
{
|
||
if (forms == null || form == null) return -1;
|
||
for (int i = 0; i < forms.Length; i++)
|
||
if (forms[i] == form) return i;
|
||
return -1;
|
||
}
|
||
}
|
||
}
|