using UnityEngine; namespace BaseGames.Player { /// /// 形态切换配置 ScriptableObject。 /// 单一资产,forms[0..2] = Sky / Earth / Death(架构 05 §18)。 /// ⚠️ 只有 1 个 FormConfigSO 资产;FormSO × 3 存于 forms[] 数组中,不分开建立。 /// [CreateAssetMenu(menuName = "Player/FormConfig")] public class FormConfigSO : ScriptableObject { [Header("形态列表 (forms[0]=Sky, forms[1]=Earth, forms[2]=Death)")] public FormSO[] forms; /// 按形态类型查找对应 FormSO;找不到返回 null。 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; } /// 返回指定 FormSO 在 forms 数组中的索引;找不到返回 -1。 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; } } }