private void Start()
        {
            this.Sequence()
            .Delay(1.0f)
            .Event(() => Log.I("Sequence1 延时了 1s"))
            .Begin()
            .DisposeWhenFinished()                     // Default is DisposeWhenGameObjDestroyed
            .OnDisposed(() => { Log.I("Sequence1 destroyed"); });

            var sequenceNode2 = SequenceNode.Allocate(DelayAction.Allocate(1.5f));

            sequenceNode2.Append(EventAction.Allocate(() => Log.I("Sequence2 延时 1.5s")));
            sequenceNode2.Append(DelayAction.Allocate(0.5f));
            sequenceNode2.Append(EventAction.Allocate(() => Log.I("Sequence2 延时 2.0s")));

            this.ExecuteNode(sequenceNode2);

            /* 这种方式需要自己手动进行销毁
             * sequenceNode2.Dispose();
             * sequenceNode2 = null;
             */

            // 或者 OnDestroy 触发时进行销毁
            sequenceNode2.AddTo(this);
        }
Example #2
0
 /// <summary>
 /// Same as Delayw
 /// </summary>
 /// <param name="senfChain"></param>
 /// <param name="seconds"></param>
 /// <returns></returns>
 public static IActionChain Wait(this IActionChain senfChain, float seconds)
 {
     return(senfChain.Append(DelayAction.Allocate(seconds)));
 }
Example #3
0
 public static void Delay <T>(this T selfBehaviour, float seconds, System.Action delayEvent)
     where T : MonoBehaviour
 {
     selfBehaviour.ExecuteNode(DelayAction.Allocate(seconds, delayEvent));
 }