using UnityEngine; namespace DanroJump.Gameplay { /// /// Маркер точки спавна контента на платформе. /// public sealed class PlatformSpawnPoint : MonoBehaviour { [SerializeField] private PlatformContentKind kind; [SerializeField] private bool optional; [SerializeField] [Min(0f)] private float weight = 1f; /// /// Категория контента, который может появиться в этой точке. /// public PlatformContentKind Kind => kind; /// /// Можно ли пропустить эту точку, если контент этапа не выбран. /// public bool Optional => optional; /// /// Вес точки при выборе между несколькими подходящими позициями. /// public float Weight => weight; /// /// Transform, в позиции которого создается контент. /// public Transform Anchor => transform; /// /// Рисует цветную gizmo-точку в редакторе для удобной настройки prefab платформ. /// private void OnDrawGizmos() { Gizmos.color = KindColor(kind); Gizmos.DrawWireSphere(transform.position, 0.12f); Gizmos.DrawLine(transform.position, transform.position + transform.up * 0.25f); } /// /// Возвращает цвет gizmo по типу контента. /// private static Color KindColor(PlatformContentKind contentKind) { switch (contentKind) { case PlatformContentKind.Collectible: return Color.yellow; case PlatformContentKind.Equipment: return Color.cyan; case PlatformContentKind.Enemy: return Color.red; default: return Color.white; } } } }