using UnityEngine; namespace Vanguard.Battle { public enum ArrowKind { Attack, Boost, } [CreateAssetMenu(menuName = "Vanguard/Arrow Config", fileName = "ArrowConfig")] public sealed class ArrowConfig : ScriptableObject { public Color attackColor = new Color(0.95f, 0.16f, 0.16f); public Color boostColor = new Color(0.22f, 0.55f, 1f); [Min(0.01f)] public float growDuration = 0.35f; [Min(0.01f)] public float fadeDuration = 0.2f; [Min(0f)] public float dashScrollSpeed = 1.5f; [Min(0.01f)] public float thickness = 0.075f; [Min(0.01f)] public float boostThickness = 0.06f; [Min(0.01f)] public float headLength = 0.32f; [Min(0.01f)] public float headWidth = 0.16f; [Min(0f)] public float yOffset = 0.22f; [Min(0f)] public float arcHeight = 0.10f; private static ArrowConfig _default; public static ArrowConfig Default { get { if (_default == null) { _default = CreateInstance(); _default.name = "ArrowConfig (runtime)"; _default.hideFlags = HideFlags.DontSave; } return _default; } } public static ArrowConfig LoadOrDefault() { var loaded = Resources.Load("ArrowConfig"); return loaded != null ? loaded : Default; } } }