50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
using UnityEngine;
|
||
|
||
namespace BaseGames.Progression
|
||
{
|
||
public enum AchievementType { Story, Collection, Challenge, Hidden }
|
||
public enum AchievementTier { Bronze, Silver, Gold }
|
||
|
||
/// <summary>
|
||
/// 成就数据 ScriptableObject(架构 16_SupportingModules §2.3)。
|
||
/// 包含显示信息、类型/等级分类、触发条件列表及奖励配置。
|
||
/// </summary>
|
||
[CreateAssetMenu(menuName = "BaseGames/Achievement/Achievement", fileName = "ACH_")]
|
||
public class AchievementSO : ScriptableObject
|
||
{
|
||
[Header("标识")]
|
||
[Tooltip("平台成就唯一标识符(与 Steam/平台后端同步)")]
|
||
public string achievementId;
|
||
|
||
[Header("显示")]
|
||
[Tooltip("成就显示名称")]
|
||
public string displayName;
|
||
|
||
[TextArea(2, 4)]
|
||
[Tooltip("成就描述(解锁后展示)")]
|
||
public string description;
|
||
|
||
[TextArea(2, 4)]
|
||
[Tooltip("隐藏成就未解锁时展示的描述,留空则显示 ???")]
|
||
public string hiddenDescription;
|
||
|
||
[Tooltip("成就图标(解锁后)")]
|
||
public Sprite icon;
|
||
|
||
[Tooltip("隐藏成就未解锁时的占位图标")]
|
||
public Sprite hiddenIcon;
|
||
|
||
[Header("分类")]
|
||
public AchievementType type = AchievementType.Story;
|
||
public AchievementTier tier = AchievementTier.Bronze;
|
||
|
||
[Header("触发条件")]
|
||
[Tooltip("所有条件同时满足时触发解锁;留空则仅通过代码直接解锁")]
|
||
public AchievementCondition[] conditions;
|
||
|
||
[Header("奖励")]
|
||
[Tooltip("解锁此成就是否同时授予凹槽(Notch)")]
|
||
public bool grantsNotch;
|
||
}
|
||
}
|