54 lines
2.1 KiB
C#
54 lines
2.1 KiB
C#
#if TEST_FRAMEWORK_INSTALLED
|
|
using System.Collections;
|
|
using NUnit.Framework;
|
|
using PrimeTween;
|
|
using UnityEngine;
|
|
using Assert = NUnit.Framework.Assert;
|
|
|
|
internal class TweensWithDurationOfDeltaTime : MonoBehaviour {
|
|
int frame;
|
|
|
|
void Update() {
|
|
switch (frame) {
|
|
case 0:
|
|
// print($"{Time.frameCount} start test");
|
|
StartCoroutine(TweenWithExactDurationOfDeltaTime3());
|
|
StartCoroutine(TweenWithExactDurationOfDeltaTime4());
|
|
break;
|
|
case 3: // was 1, but currently impl doesn't account for halfDt
|
|
Assert.AreEqual(0, Tween.StopAll(this));
|
|
Destroy(gameObject);
|
|
break;
|
|
}
|
|
frame++;
|
|
}
|
|
|
|
IEnumerator TweenWithExactDurationOfDeltaTime3() {
|
|
// int numValueChanged = 0;
|
|
int numCompleted = 0;
|
|
var duration = Time.deltaTime;
|
|
// Debug.Log($"{Time.frameCount}, duration: {duration}");
|
|
var t = Tween.Custom(this, 0, 1, duration, (_, _) => {
|
|
// Assert.IsTrue(val == 0 || val == 1, $"elapsedTime: {t.elapsedTime}, progress: {t.progress}, interpolationFactor: {t.interpolationFactor}, dt: {Time.deltaTime}, duration: {duration}, val: {val}");
|
|
// numValueChanged++;
|
|
}).OnComplete(() => numCompleted++);
|
|
yield return t.ToYieldInstruction();
|
|
// Assert.AreEqual(2, numValueChanged);
|
|
Assert.AreEqual(1, numCompleted);
|
|
}
|
|
|
|
IEnumerator TweenWithExactDurationOfDeltaTime4() {
|
|
// int numValueChanged = 0;
|
|
int numCompleted = 0;
|
|
var duration = Time.deltaTime;
|
|
var t = Tween.Custom(this, 0, 1, duration, (_, _) => {
|
|
// Assert.IsTrue(val == 0 || val == 1, $"elapsedTime: {t.elapsedTime}, progress: {t.progress}, interpolationFactor: {t.interpolationFactor}, dt: {Time.deltaTime}, duration: {duration}");
|
|
// numValueChanged++;
|
|
}).OnComplete(this, _ => numCompleted++);
|
|
yield return t.ToYieldInstruction();
|
|
// Assert.AreEqual(2, numValueChanged);
|
|
Assert.AreEqual(1, numCompleted);
|
|
}
|
|
}
|
|
#endif
|