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;
}
}