1
0
mirror of https://github.com/Cardidi/dotween-upm-fork.git synced 2025-12-21 01:36:05 +08:00

73 lines
2.0 KiB
C#

using DG.Tweening;
using System.Collections;
using UnityEngine;
// Code to replicate by Andrey Timofeev: https://github.com/Demigiant/dotween/pull/288/files#diff-0
public class IndexOutOfRange04 : BrainBase
{
public static int updateCounter = -1;
int _callCounter = 0;
void Start()
{
Time.maximumDeltaTime = 0.02f;
DOTween.Init(true, true, LogBehaviour.Verbose);
DOTween.SetTweensCapacity(1000, 1000);
StartCoroutine(CoTest());
}
IEnumerator CoTest()
{
updateCounter = -1;
yield return null;
yield return null;
yield return null;
updateCounter = 0;
StartSequence(0.75f, true); // callNumber 1
yield return new WaitForSeconds(0.5f);
var t0 = StartSequence(0.75f, false); // callNumber 2
yield return new WaitForSeconds(0.5f);
var t1 = StartSequence(99999f, false); // callNumber 3
StartSequence(99999f, false); // callNumber 4
while (t1.active) yield return null;
// while (t0.active) yield return null;
Debug.Log("Done waiting for tween");
StartSequence(99999f, true); // callNumber 5
}
Tweener StartSequence(float duration, bool failStart)
{
int callNumber = ++_callCounter;
Debug.Log(string.Format("StartSequence, callNumber:{0} duration:{1} failStart:{2}", callNumber, duration, failStart));
GameObject go = new GameObject(callNumber.ToString());
var sequence = DOTween.Sequence();
var tweener = go.transform.DOMoveX(callNumber + 1000, duration);
sequence.Append(tweener);
if (failStart) {
Debug.Log(string.Format("Destroying gameobject, callNumber {0}", callNumber));
Destroy(go);
}
return tweener;
}
void Update()
{
// if (updateCounter >= 0) {
// Debug.Log(string.Format("Update {0}, time: {1}", updateCounter, Time.time));
// ++updateCounter;
// }
}
}