74 lines
2.2 KiB
C#
74 lines
2.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// 道具效果类型(一级/二级道具共用,配置时下拉选择),
|
|
/// 具体效果在 GameMainPanel_FishBase.UsePropEffect 按枚举分发。
|
|
/// </summary>
|
|
public enum PropEffectType
|
|
{
|
|
无 = 0,
|
|
火箭炮 = 1,
|
|
激光炮 = 2,
|
|
冰冻 = 3,
|
|
锁定 = 4,
|
|
闪电 = 5,
|
|
护盾 = 6,
|
|
速射 = 7,
|
|
召唤卡 = 8,
|
|
大喇叭 = 9,
|
|
}
|
|
|
|
/// <summary>一级道具条目(左侧道具菜单主列表)</summary>
|
|
[Serializable]
|
|
public class PropItemData
|
|
{
|
|
[Tooltip("道具名(克隆项上 TextMeshProUGUI 显示)")]
|
|
public string name;
|
|
|
|
[Tooltip("图标(克隆项上 Image 显示,可不填)")]
|
|
public Sprite icon;
|
|
|
|
[Tooltip("描述(备用字段)")]
|
|
[TextArea] public string desc;
|
|
|
|
[Tooltip("效果类型(枚举选择)")]
|
|
public PropEffectType effectType = PropEffectType.无;
|
|
|
|
[Tooltip("二级子道具(点击一级道具后展开的细节列表)")]
|
|
public List<SubPropData> subProps = new List<SubPropData>();
|
|
}
|
|
|
|
/// <summary>二级子道具条目(细节)</summary>
|
|
[Serializable]
|
|
public class SubPropData
|
|
{
|
|
[Tooltip("子道具名")]
|
|
public string name;
|
|
|
|
[Tooltip("图标(可不填)")]
|
|
public Sprite icon;
|
|
|
|
[Tooltip("描述(备用字段)")]
|
|
[TextArea] public string desc;
|
|
|
|
[Tooltip("效果类型(枚举选择,点击子道具时按此分发效果)")]
|
|
public PropEffectType effectType = PropEffectType.无;
|
|
|
|
[Tooltip("效果参数(次数/时长/倍率等,按效果自定义含义)")]
|
|
public int param;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 左侧道具菜单配置资产(ScriptableObject),手动配置:
|
|
/// Assets 右键 → Create → MyGame → 左侧道具配置 生成 .asset,
|
|
/// 填好一级道具与二级子道具后,拖到 GameMainPanel_FishBase 的 propConfigData 字段。
|
|
/// </summary>
|
|
[CreateAssetMenu(fileName = "PropConfigData", menuName = "MyGame/左侧道具配置", order = 0)]
|
|
public class PropConfigData : ScriptableObject
|
|
{
|
|
[Header("一级道具列表(顺序 = 菜单显示顺序)")]
|
|
public List<PropItemData> props = new List<PropItemData>();
|
|
}
|