53 lines
1.4 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|