// Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2023 Kybernetik //
#if UNITY_EDITOR
using Animancer.Editor;
using UnityEditor;
using UnityEngine;
#endif
namespace Animancer.Units
{
/// [Editor-Conditional] Applies a different GUI for an animation speed field.
/// https://kybernetik.com.au/animancer/api/Animancer.Units/AnimationSpeedAttribute
///
[System.Diagnostics.Conditional(Strings.UnityEditor)]
public sealed class AnimationSpeedAttribute : UnitsAttribute
{
/************************************************************************************************************************/
/// Creates a new .
public AnimationSpeedAttribute()
{
#if UNITY_EDITOR
SetUnits(Multipliers, DisplayConverters);
Rule = Validate.Value.IsFiniteOrNaN;
IsOptional = true;
DefaultValue = 1;
#endif
}
/************************************************************************************************************************/
#if UNITY_EDITOR
/************************************************************************************************************************/
private static new readonly float[]
Multipliers = { 1 };
/// A converter that adds an x suffix.
public static new readonly CompactUnitConversionCache[]
DisplayConverters = { AnimationTimeAttribute.XSuffix, };
/************************************************************************************************************************/
///
protected override int GetLineCount(SerializedProperty property, GUIContent label) => 1;
/************************************************************************************************************************/
#endif
/************************************************************************************************************************/
}
}