2025-06-07 17:43:34 +08:00

53 lines
1.4 KiB
C#

using FairyGUI.Utils;
namespace FairyGUI
{
public class PlayTransitionAction : ControllerAction
{
public string transitionName;
public int playTimes;
public float delay;
public bool stopOnExit;
private Transition _currentTransition;
public PlayTransitionAction()
{
playTimes = 1;
delay = 0;
}
override protected void Enter(Controller controller)
{
Transition trans = controller.parent.GetTransition(transitionName);
if (trans != null)
{
if (_currentTransition != null && _currentTransition.playing)
trans.ChangePlayTimes(playTimes);
else
trans.Play(playTimes, delay, null);
_currentTransition = trans;
}
}
override protected void Leave(Controller controller)
{
if (stopOnExit && _currentTransition != null)
{
_currentTransition.Stop();
_currentTransition = null;
}
}
override public void Setup(ByteBuffer buffer)
{
base.Setup(buffer);
transitionName = buffer.ReadS();
playTimes = buffer.ReadInt();
delay = buffer.ReadFloat();
stopOnExit = buffer.ReadBool();
}
}
}