62 lines
1.6 KiB
C#
62 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// Òèïû ìàðøðóòîâ äëÿ ðàçíûõ ñèòóàöèé
|
|
/// </summary>
|
|
public enum PathType
|
|
{
|
|
Default, // Áàçîâûé ìàðøðóò
|
|
Victory, // Ìàðøðóò ïðè ïîáåäå
|
|
Defeat // Ìàðøðóò ïðè ïîðàæåíèè
|
|
}
|
|
|
|
/// <summary>
|
|
/// Îäèí ìàðøðóò ñ êëþ÷îì
|
|
/// </summary>
|
|
[Serializable]
|
|
public class PathData
|
|
{
|
|
public PathType pathType = PathType.Default;
|
|
public bool loop = false;
|
|
public List<UIPathPoint> points = new List<UIPathPoint>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Êîíôèãóðàöèÿ ìàðøðóòîâ äëÿ ïåðñîíàæà
|
|
/// Ñîäåðæèò Override Controller è ñïèñîê ìàðøðóòîâ ñ êëþ÷àìè
|
|
/// </summary>
|
|
[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<PathData> paths = new List<PathData>();
|
|
|
|
/// <summary>
|
|
/// Ïîëó÷èòü ìàðøðóò ïî êëþ÷ó
|
|
/// </summary>
|
|
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;
|
|
}
|
|
}
|
|
|