51 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|