mirror of
https://github.com/Cardidi/dotween-upm-fork.git
synced 2025-12-20 17:26:03 +08:00
83 lines
2.9 KiB
C#
83 lines
2.9 KiB
C#
using DG.Tweening;
|
|
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class SequenceCallbacks : BrainBase
|
|
{
|
|
public Transform[] targets;
|
|
|
|
Sequence main;
|
|
|
|
void OnGUI()
|
|
{
|
|
DGUtils.BeginGUI();
|
|
|
|
if (GUILayout.Button("TogglePause")) DOTween.TogglePauseAll();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
if (GUILayout.Button("Rewind")) DOTween.RewindAll();
|
|
if (GUILayout.Button("Restart")) DOTween.RestartAll();
|
|
if (GUILayout.Button("Complete")) DOTween.CompleteAll();
|
|
if (GUILayout.Button("Flip")) DOTween.FlipAll();
|
|
if (GUILayout.Button("Goto 0.5")) DOTween.GotoAll(0.5f);
|
|
if (GUILayout.Button("Goto 1")) DOTween.GotoAll(1);
|
|
if (GUILayout.Button("Goto 1.5")) DOTween.GotoAll(1.5f);
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
if (GUILayout.Button("Sequence > LoopType.Restart")) NewSequence(LoopType.Restart, false);
|
|
if (GUILayout.Button("Sequence > LoopType.Restart > Flipped")) NewSequence(LoopType.Restart, true);
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
if (GUILayout.Button("Sequence > LoopType.Yoyo")) NewSequence(LoopType.Yoyo, false);
|
|
if (GUILayout.Button("Sequence > LoopType.Yoyo > Flipped")) NewSequence(LoopType.Yoyo, true);
|
|
GUILayout.EndHorizontal();
|
|
|
|
DGUtils.EndGUI();
|
|
}
|
|
|
|
void NewSequence(LoopType loopType, bool flip)
|
|
{
|
|
main.Rewind();
|
|
main.Kill();
|
|
|
|
Sequence innerS0 = DOTween.Sequence()
|
|
.SetId("INNER")
|
|
// .SetLoops(3, loopType)
|
|
.OnStepComplete(()=>Debug.Log("INNER Step Complete"));
|
|
// .Append(targets[0].DOMoveX(3, 1).SetEase(Ease.Linear));
|
|
// innerS0.InsertCallback(0.25f, ()=> Callback("INNER"));
|
|
|
|
Sequence innerS1 = DOTween.Sequence()
|
|
.SetId("INNER INNER")
|
|
// .SetLoops(3, loopType)
|
|
.OnStepComplete(()=> Debug.Log("INNER INNER Step Complete"));
|
|
innerS1.Append(targets[0].DOMoveX(3, 1).SetEase(Ease.Linear));
|
|
innerS1.InsertCallback(0.25f, ()=> Callback("INNER INNER"));
|
|
innerS0.Append(innerS1);
|
|
innerS0.InsertCallback(0.25f, ()=> Callback("INNER"));
|
|
|
|
main = DOTween.Sequence()
|
|
.SetId("MAIN")
|
|
.SetLoops(3, loopType)
|
|
.SetAutoKill(false)
|
|
.OnStepComplete(()=> Debug.Log("MAIN Step Complete"));
|
|
// .Append(targets[0].DOMoveX(3, 1).SetEase(Ease.Linear));
|
|
main.Append(innerS0);
|
|
main.InsertCallback(0.25f, ()=> Callback("MAIN"));
|
|
|
|
if (flip) {
|
|
main.Complete();
|
|
main.Flip();
|
|
main.PlayBackwards();
|
|
}
|
|
}
|
|
|
|
void Callback(string id)
|
|
{
|
|
string prefix = ">>>";
|
|
if (id == "INNER") prefix += ">>>";
|
|
if (id == "INNER INNER") prefix += ">>>>>>";
|
|
Debug.Log("<color=#92FF70>" + prefix + " " + id + " > Callback > " + main.Elapsed(true) + "</color>");
|
|
}
|
|
} |