using UnityEngine; namespace YachtDice.Dice { /// /// Абстрактное определение типа дайса. /// Наследники описывают конкретные виды (стандартный d6, специальные и т.д.). /// public abstract class DieDefinitionSO : ScriptableObject { [Header("Identity")] [SerializeField] private string id; [SerializeField] private string displayName; [SerializeField] private Sprite icon; public string Id => id; public string DisplayName => displayName; public Sprite Icon => icon; /// Количество граней. public abstract int FaceCount { get; } /// Возвращает массив всех возможных значений граней. public abstract int[] GetFaceValues(); #if UNITY_EDITOR public static T CreateForTest(string id, string displayName = null) where T : DieDefinitionSO { var so = CreateInstance(); so.id = id; so.displayName = displayName ?? id; return so; } #endif } }