拼ui 一些业务逻辑x实现
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
using UnityEngine;
|
||||
|
||||
public enum GlobalAchievementMetricType
|
||||
{
|
||||
TotalCoinsEarned = 0,
|
||||
OwnedHeroCount = 1,
|
||||
OwnedSongCount = 2,
|
||||
BestSingleSongTotalScore = 3,
|
||||
TotalSongBestScoreSum = 4,
|
||||
LoginDays = 5,
|
||||
}
|
||||
|
||||
[CreateAssetMenu(fileName = "GA_", menuName = "SO_Data/GlobalAchievement")]
|
||||
public class GlobalAchievementSO : ScriptableObject
|
||||
{
|
||||
[Header("identity")]
|
||||
public int achievementId;
|
||||
public string displayName;
|
||||
public string achievementSeriesKey;
|
||||
[Range(0, 6)] public int achievementLevel;
|
||||
|
||||
[TextArea(2, 5)]
|
||||
public string description;
|
||||
|
||||
[Header("display")]
|
||||
public Sprite icon;
|
||||
public int sortOrder;
|
||||
public bool hiddenUntilUnlocked;
|
||||
|
||||
[Header("runtime mirror")]
|
||||
[SerializeField] private bool isUnlocked;
|
||||
[SerializeField] private string unlockedDateTime;
|
||||
|
||||
[Header("trigger")]
|
||||
public GlobalAchievementMetricType metricType = GlobalAchievementMetricType.LoginDays;
|
||||
public float targetValue = 1f;
|
||||
|
||||
[Header("steam")]
|
||||
public bool syncWithSteam;
|
||||
public string steamAchievementApiName;
|
||||
|
||||
public bool IsUnlocked
|
||||
{
|
||||
get { return isUnlocked; }
|
||||
}
|
||||
|
||||
public string UnlockedDateTime
|
||||
{
|
||||
get { return unlockedDateTime; }
|
||||
}
|
||||
|
||||
public void SetUnlockedState(bool value, long unlockedUtcTicks = 0L)
|
||||
{
|
||||
isUnlocked = value;
|
||||
if (value && unlockedUtcTicks > 0L)
|
||||
{
|
||||
unlockedDateTime = new System.DateTime(unlockedUtcTicks, System.DateTimeKind.Utc).ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss");
|
||||
}
|
||||
else if (!value)
|
||||
{
|
||||
unlockedDateTime = string.Empty;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
if (!Application.isPlaying)
|
||||
{
|
||||
UnityEditor.EditorUtility.SetDirty(this);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user