75 lines
2.2 KiB
C#
75 lines
2.2 KiB
C#
// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.
|
|
|
|
using UnityEngine;
|
|
using System.Collections.Generic;
|
|
|
|
namespace HutongGames.PlayMaker.Actions
|
|
{
|
|
[ActionCategory("AnimateVariables")]
|
|
[Tooltip("Easing Animation - Rect.")]
|
|
public class EaseRect : EaseFsmAction
|
|
{
|
|
[RequiredField]
|
|
public FsmRect fromValue;
|
|
[RequiredField]
|
|
public FsmRect toValue;
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmRect rectVariable;
|
|
|
|
private bool finishInNextStep = false;
|
|
|
|
public override void Reset (){
|
|
base.Reset();
|
|
rectVariable = null;
|
|
fromValue = null;
|
|
toValue = null;
|
|
finishInNextStep = false;
|
|
}
|
|
|
|
|
|
public override void OnEnter ()
|
|
{
|
|
base.OnEnter();
|
|
fromFloats = new float[4];
|
|
fromFloats[0] = fromValue.Value.x;
|
|
fromFloats[1] = fromValue.Value.y;
|
|
fromFloats[2] = fromValue.Value.width;
|
|
fromFloats[3] = fromValue.Value.height;
|
|
toFloats = new float[4];
|
|
toFloats[0] = toValue.Value.x;
|
|
toFloats[1] = toValue.Value.y;
|
|
toFloats[2] = toValue.Value.width;
|
|
toFloats[3] = toValue.Value.height;
|
|
resultFloats = new float[4];
|
|
finishInNextStep = false;
|
|
rectVariable.Value = fromValue.Value;
|
|
}
|
|
|
|
public override void OnExit (){
|
|
base.OnExit();
|
|
}
|
|
|
|
public override void OnUpdate(){
|
|
base.OnUpdate();
|
|
if(!rectVariable.IsNone && isRunning){
|
|
rectVariable.Value = new Rect(resultFloats[0],resultFloats[1],resultFloats[2], resultFloats[3]);
|
|
}
|
|
|
|
if(finishInNextStep){
|
|
Finish();
|
|
if(finishEvent != null) Fsm.Event(finishEvent);
|
|
}
|
|
|
|
if(finishAction && !finishInNextStep){
|
|
if(!rectVariable.IsNone){
|
|
rectVariable.Value = new Rect(reverse.IsNone ? toValue.Value.x : reverse.Value ? fromValue.Value.x : toValue.Value.x,
|
|
reverse.IsNone ? toValue.Value.y : reverse.Value ? fromValue.Value.y : toValue.Value.y,
|
|
reverse.IsNone ? toValue.Value.width : reverse.Value ? fromValue.Value.width : toValue.Value.width,
|
|
reverse.IsNone ? toValue.Value.height : reverse.Value ? fromValue.Value.height : toValue.Value.height
|
|
);
|
|
}
|
|
finishInNextStep = true;
|
|
}
|
|
}
|
|
}
|
|
} |