70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
using UnityEngine;
 | 
						|
using UnrealM;
 | 
						|
 | 
						|
public class ActionSequenceSystemExample : MonoBehaviour
 | 
						|
{
 | 
						|
    // Use this for initialization
 | 
						|
    private void Start()
 | 
						|
    {
 | 
						|
        //Start a once timer
 | 
						|
        this.Delayer(1, () => Debug.Log(1));
 | 
						|
        this.Sequence().Interval(1).Action(() => Debug.Log(1));//Same
 | 
						|
 | 
						|
        //Allso use transform as a ID to start a sequence
 | 
						|
        transform.Delayer(1, () => Debug.Log(1));
 | 
						|
 | 
						|
        //Start a loop timer
 | 
						|
        this.Looper(0.5f, 3, false, () => Debug.Log(-1));
 | 
						|
        this.Sequence().Loop(3).Interval(0.5f).Action(() => Debug.Log(-1));//Same
 | 
						|
 | 
						|
        //Start a long sequence
 | 
						|
        this.Sequence()
 | 
						|
            .Interval(2)
 | 
						|
            .Action(() => Debug.Log("Test1"))
 | 
						|
            .Interval(3)
 | 
						|
            .Action(() => Debug.Log("Test2"))
 | 
						|
            .Interval(1)
 | 
						|
            .Action(() => Debug.Log("Test3 end"))
 | 
						|
            ;
 | 
						|
 | 
						|
        //Check Q key per 0.2 seconds
 | 
						|
        this.Sequence()
 | 
						|
            .Loop()
 | 
						|
            .Interval(0.2f)
 | 
						|
            .Condition(() => Input.GetKeyDown(KeyCode.Q))
 | 
						|
            .Action(n => Debug.Log("Q键 按下次数" + n));
 | 
						|
 | 
						|
        ActionSequenceSystem.Delayer(5, () => Debug.Log("No id delayer"));
 | 
						|
        ActionSequenceSystem.Looper(0.2f, 10, false, () => Debug.Log("No id looper"));
 | 
						|
    }
 | 
						|
 | 
						|
    // Update is called once per frame
 | 
						|
    private void Update()
 | 
						|
    {
 | 
						|
        //Start a loop in Update, using transform as ID
 | 
						|
        if (Input.GetKeyDown(KeyCode.A))
 | 
						|
        {
 | 
						|
            transform.Looper(1, -1, true, count => Debug.Log("A" +count));
 | 
						|
        }
 | 
						|
 | 
						|
        //Start a loop in Update
 | 
						|
        if (Input.GetKeyDown(KeyCode.S))
 | 
						|
        {
 | 
						|
            this.Looper(1, -1, true, count => Debug.Log("S" +count));
 | 
						|
        }
 | 
						|
 | 
						|
        //Stop all sequences start by this ID
 | 
						|
        if (Input.GetKeyDown(KeyCode.D))
 | 
						|
        {
 | 
						|
            transform.StopSequence();
 | 
						|
        }
 | 
						|
 | 
						|
        //Stop all sequences start by transform
 | 
						|
        if (Input.GetKeyDown(KeyCode.F))
 | 
						|
        {
 | 
						|
            this.StopSequence();
 | 
						|
        }
 | 
						|
 | 
						|
        //If this Component is destroyed, the associated Sequence will automatically stop and recycle to the pool.
 | 
						|
    }
 | 
						|
} |