63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
using System;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
namespace UnrealM
 | 
						|
{
 | 
						|
    public static class ActionSequenceSystemEx
 | 
						|
    {
 | 
						|
        //用Component作为ID开序列
 | 
						|
        public static ActionSequence Sequence(this Component id)
 | 
						|
        {
 | 
						|
            ActionSequence seq = ActionSequenceSystem.GetSequence(id);
 | 
						|
            return seq;
 | 
						|
        }
 | 
						|
 | 
						|
        //用Component作为ID停止序列
 | 
						|
        public static void StopSequence(this Component id)
 | 
						|
        {
 | 
						|
            ActionSequenceSystem.SetStopSequenceID(id);
 | 
						|
        }
 | 
						|
 | 
						|
        //直接延迟动作
 | 
						|
        public static ActionSequence Delayer(this Component id, float delay, Action action)
 | 
						|
        {
 | 
						|
            ActionSequence seq = ActionSequenceSystem.GetSequence(id);
 | 
						|
            seq.Interval(delay).Action(action);
 | 
						|
            return seq;
 | 
						|
        }
 | 
						|
 | 
						|
        //直接循环动作
 | 
						|
        public static ActionSequence Looper(this Component id, float interval, int loopTime, bool isActionAtStart, Action action)
 | 
						|
        {
 | 
						|
            ActionSequence seq = ActionSequenceSystem.GetSequence(id);
 | 
						|
            if (isActionAtStart)
 | 
						|
            {
 | 
						|
                seq.Action(action).Interval(interval);
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                seq.Interval(interval).Action(action);
 | 
						|
            }
 | 
						|
 | 
						|
            seq.Loop(loopTime);
 | 
						|
            return seq;
 | 
						|
        }
 | 
						|
 | 
						|
        //直接循环动作
 | 
						|
        public static ActionSequence Looper(this Component id, float interval, int loopTime, bool isActionAtStart, Action<int> action)
 | 
						|
        {
 | 
						|
            ActionSequence seq = ActionSequenceSystem.GetSequence(id);
 | 
						|
            if (isActionAtStart)
 | 
						|
            {
 | 
						|
                seq.Action(action).Interval(interval);
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                seq.Interval(interval).Action(action);
 | 
						|
            }
 | 
						|
 | 
						|
            seq.Loop(loopTime);
 | 
						|
            return seq;
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |