using System; using System.Collections.Generic; using UnityEngine; /// /// Типы маршрутов для разных ситуаций /// public enum PathType { Default, // Базовый маршрут Victory, // Маршрут при победе Defeat // Маршрут при поражении } /// /// Один маршрут с ключом /// [Serializable] public class PathData { public PathType pathType = PathType.Default; public bool loop = false; public List points = new List(); } /// /// Конфигурация маршрутов для персонажа /// Содержит Override Controller и список маршрутов с ключами /// [CreateAssetMenu(fileName = "CharacterPath", menuName = "UI/Character Path Config")] public class UICharacterPathConfig : ScriptableObject { [Header("Персонаж")] [Tooltip("Override Controller для этого персонажа (анимации)")] public AnimatorOverrideController overrideController; [Header("Префаб картинки")] [Tooltip("Префаб UI элемента который будет двигаться")] public GameObject characterPrefab; [Header("Маршруты")] [Tooltip("Список маршрутов с ключами (Default, Victory, Defeat)")] public List paths = new List(); /// /// Получить маршрут по ключу /// public PathData GetPath(PathType pathType) { PathData path = paths.Find(p => p.pathType == pathType); // Если не нашли запрошенный - возвращаем Default if (path == null) { path = paths.Find(p => p.pathType == PathType.Default); } return path; } }