1
0
mirror of https://github.com/Cardidi/dotween-upm-fork.git synced 2025-12-20 17:26:03 +08:00
2020-01-17 00:11:15 +09:00

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>");
}
}