Files
2024-11-20 15:21:28 +01:00

72 lines
1.6 KiB
C#

// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.
using UnityEngine;
using System.Collections.Generic;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.AnimateVariables)]
[Tooltip("Easing Animation - Float")]
public class EaseFloat : EaseFsmAction
{
[RequiredField]
public FsmFloat fromValue;
[RequiredField]
public FsmFloat toValue;
[UIHint(UIHint.Variable)]
public FsmFloat floatVariable;
private bool finishInNextStep = false;
public override void Reset (){
base.Reset();
floatVariable = null;
fromValue = null;
toValue = null;
finishInNextStep = false;
}
public override void OnEnter ()
{
base.OnEnter();
fromFloats = new float[1];
fromFloats[0] = fromValue.Value;
toFloats = new float[1];
toFloats[0] = toValue.Value;
resultFloats = new float[1];
finishInNextStep = false;
floatVariable.Value = fromValue.Value;
}
public override void OnExit (){
base.OnExit();
}
public override void OnUpdate(){
base.OnUpdate();
if(!floatVariable.IsNone && isRunning){
floatVariable.Value = resultFloats[0];
}
if(finishInNextStep){
Finish();
if(finishEvent != null) Fsm.Event(finishEvent);
}
if(finishAction && !finishInNextStep){
if(!floatVariable.IsNone){
floatVariable.Value = reverse.IsNone ? toValue.Value : reverse.Value ? fromValue.Value : toValue.Value;
}
finishInNextStep = true;
}
}
#if UNITY_EDITOR
public override string AutoName()
{
return ActionHelpers.AutoNameRange(this, fromValue, toValue) + " " + easeType;
}
#endif
}
}