Compare commits

...

5 Commits

Author SHA1 Message Date
neuecc
7718d345c8 2.0.30 2020-08-14 17:36:50 +09:00
neuecc
9f39708325 Merge remote-tracking branch 'origin/master' 2020-08-14 17:29:39 +09:00
neuecc
bb6dbfa920 Fix await IEnumerator + WaitForSeconds does not follow timescale(to behave same as StartCoroutine) #133 2020-08-14 17:29:30 +09:00
Yoshifumi Kawai
ba265005bb Merge pull request #132 from RamType-0/Disable-AutoReference-EditorAssembly
Disable "Auto Referenced" of UniTask.Editor
2020-08-14 06:25:21 +09:00
Ram.Type-0
4d7cc7ed61 Disable auto reference of UniTask.Editor 2020-08-14 04:56:58 +09:00
4 changed files with 31 additions and 4 deletions

View File

@@ -10,7 +10,7 @@
"allowUnsafeCode": false, "allowUnsafeCode": false,
"overrideReferences": false, "overrideReferences": false,
"precompiledReferences": [], "precompiledReferences": [],
"autoReferenced": true, "autoReferenced": false,
"defineConstraints": [], "defineConstraints": [],
"versionDefines": [], "versionDefines": [],
"noEngineReferences": false "noEngineReferences": false

View File

@@ -225,12 +225,12 @@ namespace Cysharp.Threading.Tasks
static IEnumerator UnwrapWaitForSeconds(WaitForSeconds waitForSeconds) static IEnumerator UnwrapWaitForSeconds(WaitForSeconds waitForSeconds)
{ {
var second = (float)waitForSeconds_Seconds.GetValue(waitForSeconds); var second = (float)waitForSeconds_Seconds.GetValue(waitForSeconds);
var startTime = DateTimeOffset.UtcNow; var elapsed = 0.0f;
while (true) while (true)
{ {
yield return null; yield return null;
var elapsed = (DateTimeOffset.UtcNow - startTime).TotalSeconds; elapsed += Time.deltaTime;
if (elapsed >= second) if (elapsed >= second)
{ {
break; break;

View File

@@ -1,7 +1,7 @@
{ {
"name": "com.cysharp.unitask", "name": "com.cysharp.unitask",
"displayName": "UniTask", "displayName": "UniTask",
"version": "2.0.28", "version": "2.0.30",
"unity": "2018.4", "unity": "2018.4",
"description": "Provides an efficient async/await integration to Unity.", "description": "Provides an efficient async/await integration to Unity.",
"keywords": [ "async/await", "async", "Task", "UniTask" ], "keywords": [ "async/await", "async", "Task", "UniTask" ],

View File

@@ -96,6 +96,33 @@ namespace Cysharp.Threading.TasksTests
// l[1].Item2.Should().NotBe(currentFrame); // l[1].Item2.Should().NotBe(currentFrame);
//} //}
[UnityTest]
public IEnumerator WaitForSecondsTest() => UniTask.ToCoroutine(async () =>
{
await UniTask.Yield(PlayerLoopTiming.PostLateUpdate);
Time.timeScale = 0.5f;
try
{
var now = DateTimeOffset.UtcNow;
await WaitFor();
var elapsed = DateTimeOffset.UtcNow - now;
(5.8f <= elapsed.TotalSeconds && elapsed.TotalSeconds <= 6.2f).Should().BeTrue();
}
finally
{
Time.timeScale = 1.0f;
}
});
IEnumerator WaitFor()
{
yield return new WaitForSeconds(3.0f);
}
IEnumerator Worker(List<(int, int)> l) IEnumerator Worker(List<(int, int)> l)
{ {
l.Add((0, Time.frameCount)); l.Add((0, Time.frameCount));