VanguardReMaster/client/Assets/Vanguard/Runtime/Battle/ArrowConfig.cs

51 lines
1.5 KiB
C#

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<ArrowConfig>();
_default.name = "ArrowConfig (runtime)";
_default.hideFlags = HideFlags.DontSave;
}
return _default;
}
}
public static ArrowConfig LoadOrDefault()
{
var loaded = Resources.Load<ArrowConfig>("ArrowConfig");
return loaded != null ? loaded : Default;
}
}
}