Files
2026-02-21 16:58:22 -08:00

63 lines
2.0 KiB
C#

using UnityEngine;
namespace Febucci.UI.Core
{
[System.Serializable]
internal class PresetBaseValues
{
#pragma warning disable 0649 //disabling the error or unity will throw "field is never assigned" [..], because we actually assign the variables from the custom drawers
public string effectTag;
[SerializeField] public FloatCurve movementX;
[SerializeField] public FloatCurve movementY;
[SerializeField] public FloatCurve movementZ;
[SerializeField] public FloatCurve scaleX;
[SerializeField] public FloatCurve scaleY;
[SerializeField] public FloatCurve rotX;
[SerializeField] public FloatCurve rotY;
[SerializeField] public FloatCurve rotZ;
[SerializeField] public ColorCurve color;
#pragma warning restore 0649
public float GetMaxDuration()
{
float GetEffectEvaluatorDuration(EffectEvaluator effect)
{
if (effect.isEnabled)
return effect.GetDuration();
return 0;
}
return Mathf.Max
(
GetEffectEvaluatorDuration(movementX),
GetEffectEvaluatorDuration(movementY),
GetEffectEvaluatorDuration(movementZ),
GetEffectEvaluatorDuration(scaleX),
GetEffectEvaluatorDuration(scaleY),
color.enabled ? color.GetDuration() : 0
);
}
public virtual void Initialize(bool isAppearance)
{
int baseIdentifier = isAppearance ? 3 : 0;
movementX.Initialize(baseIdentifier);
movementY.Initialize(baseIdentifier);
movementZ.Initialize(baseIdentifier);
scaleX.Initialize(baseIdentifier + 1);
scaleY.Initialize(baseIdentifier + 1);
rotX.Initialize(baseIdentifier + 2);
rotY.Initialize(baseIdentifier + 2);
rotZ.Initialize(baseIdentifier + 2);
color.Initialize(isAppearance);
}
}
}