65 lines
1.5 KiB
C#
65 lines
1.5 KiB
C#
// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.
|
|
|
|
using UnityEngine;
|
|
|
|
namespace HutongGames.PlayMaker.Actions
|
|
{
|
|
[ActionCategory(ActionCategory.Animation)]
|
|
[Tooltip("Enables/Disables an Animation on a GameObject.\nAnimation time is paused while disabled. Animation must also have a non zero weight to play.")]
|
|
public class EnableAnimation : BaseAnimationAction
|
|
{
|
|
[RequiredField]
|
|
[CheckForComponent(typeof(Animation))]
|
|
[Tooltip("The GameObject playing the animation.")]
|
|
public FsmOwnerDefault gameObject;
|
|
|
|
[RequiredField]
|
|
[UIHint(UIHint.Animation)]
|
|
[Tooltip("The name of the animation to enable/disable.")]
|
|
public FsmString animName;
|
|
|
|
[RequiredField]
|
|
[Tooltip("Set to True to enable, False to disable.")]
|
|
public FsmBool enable;
|
|
|
|
[Tooltip("Reset the initial enabled state when exiting the state.")]
|
|
public FsmBool resetOnExit;
|
|
|
|
private AnimationState anim;
|
|
|
|
public override void Reset()
|
|
{
|
|
gameObject = null;
|
|
animName = null;
|
|
enable = true;
|
|
resetOnExit = false;
|
|
}
|
|
|
|
public override void OnEnter()
|
|
{
|
|
DoEnableAnimation(Fsm.GetOwnerDefaultTarget(gameObject));
|
|
|
|
Finish();
|
|
}
|
|
|
|
void DoEnableAnimation(GameObject go)
|
|
{
|
|
if (UpdateCache(go))
|
|
{
|
|
anim = animation[animName.Value];
|
|
if (anim != null)
|
|
{
|
|
anim.enabled = enable.Value;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void OnExit()
|
|
{
|
|
if (resetOnExit.Value && anim != null)
|
|
{
|
|
anim.enabled = !enable.Value;
|
|
}
|
|
}
|
|
}
|
|
} |