63 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
} |