Compare commits

..

1 Commits

Author SHA1 Message Date
github-actions[bot]
7c0f199fe0 feat: Update package.json to 2.5.10 2024-10-03 00:42:37 +00:00
9 changed files with 125 additions and 240 deletions

View File

@@ -135,8 +135,8 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
cancellationTokenRegistration.Dispose();
core.Reset(); core.Reset();
cancellationTokenRegistration.Dispose();
cancellationTokenRegistration = default; cancellationTokenRegistration = default;
parent.triggerEvent.Remove(this); parent.triggerEvent.Remove(this);
parent = null; parent = null;
@@ -453,8 +453,8 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
cancellationTokenRegistration.Dispose();
core.Reset(); core.Reset();
cancellationTokenRegistration.Dispose();
cancellationTokenRegistration = default; cancellationTokenRegistration = default;
parent.triggerEvent.Remove(this); parent.triggerEvent.Remove(this);
parent = null; parent = null;

View File

@@ -353,8 +353,8 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
cancellationRegistration.Dispose();
core.Reset(); core.Reset();
cancellationRegistration.Dispose();
RestoreOriginalCallback(); RestoreOriginalCallback();

View File

@@ -255,7 +255,7 @@ namespace Cysharp.Threading.Tasks
} }
finally finally
{ {
if (!cancellationToken.IsCancellationRequested) if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
{ {
TryReturn(); TryReturn();
} }
@@ -289,7 +289,6 @@ namespace Cysharp.Threading.Tasks
return false; return false;
} }
cancellationTokenRegistration.Dispose();
core.TrySetResult(null); core.TrySetResult(null);
return false; return false;
} }
@@ -297,9 +296,9 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
cancellationTokenRegistration.Dispose();
core.Reset(); core.Reset();
cancellationToken = default; cancellationToken = default;
cancellationTokenRegistration.Dispose();
cancelImmediately = default; cancelImmediately = default;
return pool.TryPush(this); return pool.TryPush(this);
} }
@@ -367,7 +366,7 @@ namespace Cysharp.Threading.Tasks
} }
finally finally
{ {
if (!cancellationToken.IsCancellationRequested) if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
{ {
TryReturn(); TryReturn();
} }
@@ -413,9 +412,9 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
cancellationTokenRegistration.Dispose();
core.Reset(); core.Reset();
cancellationToken = default; cancellationToken = default;
cancellationTokenRegistration.Dispose();
return pool.TryPush(this); return pool.TryPush(this);
} }
} }

View File

@@ -42,7 +42,6 @@ namespace Cysharp.Threading.Tasks
return new UniTask(AsyncOperationConfiguredSource.Create(asyncOperation, timing, progress, cancellationToken, cancelImmediately, out var token), token); return new UniTask(AsyncOperationConfiguredSource.Create(asyncOperation, timing, progress, cancellationToken, cancelImmediately, out var token), token);
} }
#if !UNITY_2023_1_OR_NEWER
public struct AsyncOperationAwaiter : ICriticalNotifyCompletion public struct AsyncOperationAwaiter : ICriticalNotifyCompletion
{ {
AsyncOperation asyncOperation; AsyncOperation asyncOperation;
@@ -82,7 +81,6 @@ namespace Cysharp.Threading.Tasks
asyncOperation.completed += continuationAction; asyncOperation.completed += continuationAction;
} }
} }
#endif
sealed class AsyncOperationConfiguredSource : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<AsyncOperationConfiguredSource> sealed class AsyncOperationConfiguredSource : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<AsyncOperationConfiguredSource>
{ {
@@ -101,7 +99,6 @@ namespace Cysharp.Threading.Tasks
CancellationTokenRegistration cancellationTokenRegistration; CancellationTokenRegistration cancellationTokenRegistration;
bool cancelImmediately; bool cancelImmediately;
bool completed; bool completed;
bool allowReturn;
UniTaskCompletionSourceCore<AsyncUnit> core; UniTaskCompletionSourceCore<AsyncUnit> core;
@@ -129,7 +126,6 @@ namespace Cysharp.Threading.Tasks
result.cancellationToken = cancellationToken; result.cancellationToken = cancellationToken;
result.cancelImmediately = cancelImmediately; result.cancelImmediately = cancelImmediately;
result.completed = false; result.completed = false;
result.allowReturn = false;
asyncOperation.completed += result.continuationAction; asyncOperation.completed += result.continuationAction;
@@ -158,16 +154,9 @@ namespace Cysharp.Threading.Tasks
} }
finally finally
{ {
if (!cancellationToken.IsCancellationRequested) if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
{ {
if (allowReturn) TryReturn();
{
TryReturn();
}
else
{
allowReturn = true;
}
} }
else else
{ {
@@ -194,15 +183,9 @@ namespace Cysharp.Threading.Tasks
public bool MoveNext() public bool MoveNext()
{ {
if (allowReturn) // Already completed
if (completed || asyncOperation == null)
{ {
TryReturn();
return false;
}
if (completed)
{
allowReturn = true;
return false; return false;
} }
@@ -219,8 +202,6 @@ namespace Cysharp.Threading.Tasks
if (asyncOperation.isDone) if (asyncOperation.isDone)
{ {
cancellationTokenRegistration.Dispose();
allowReturn = true;
core.TrySetResult(AsyncUnit.Default); core.TrySetResult(AsyncUnit.Default);
return false; return false;
} }
@@ -231,31 +212,29 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
cancellationTokenRegistration.Dispose();
core.Reset(); core.Reset();
asyncOperation.completed -= continuationAction; asyncOperation.completed -= continuationAction;
asyncOperation = default; asyncOperation = default;
progress = default; progress = default;
cancellationToken = default; cancellationToken = default;
cancellationTokenRegistration.Dispose();
cancelImmediately = default; cancelImmediately = default;
return pool.TryPush(this); return pool.TryPush(this);
} }
void Continuation(AsyncOperation _) void Continuation(AsyncOperation _)
{ {
if (completed)
{
return;
}
completed = true; completed = true;
cancellationTokenRegistration.Dispose();
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
{ {
core.TrySetCanceled(cancellationToken); core.TrySetCanceled(cancellationToken);
} }
else else
{ {
if (progress != null)
{
progress.Report(asyncOperation.progress);
}
core.TrySetResult(AsyncUnit.Default); core.TrySetResult(AsyncUnit.Default);
} }
} }
@@ -350,7 +329,6 @@ namespace Cysharp.Threading.Tasks
CancellationTokenRegistration cancellationTokenRegistration; CancellationTokenRegistration cancellationTokenRegistration;
bool cancelImmediately; bool cancelImmediately;
bool completed; bool completed;
bool allowReturn;
UniTaskCompletionSourceCore<UnityEngine.Object> core; UniTaskCompletionSourceCore<UnityEngine.Object> core;
@@ -378,7 +356,6 @@ namespace Cysharp.Threading.Tasks
result.cancellationToken = cancellationToken; result.cancellationToken = cancellationToken;
result.cancelImmediately = cancelImmediately; result.cancelImmediately = cancelImmediately;
result.completed = false; result.completed = false;
result.allowReturn = false;
asyncOperation.completed += result.continuationAction; asyncOperation.completed += result.continuationAction;
@@ -407,16 +384,9 @@ namespace Cysharp.Threading.Tasks
} }
finally finally
{ {
if (!cancellationToken.IsCancellationRequested) if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
{ {
if (allowReturn) TryReturn();
{
TryReturn();
}
else
{
allowReturn = true;
}
} }
else else
{ {
@@ -447,15 +417,9 @@ namespace Cysharp.Threading.Tasks
public bool MoveNext() public bool MoveNext()
{ {
if (allowReturn) // Already completed
if (completed || asyncOperation == null)
{ {
TryReturn();
return false;
}
if (completed)
{
allowReturn = true;
return false; return false;
} }
@@ -472,8 +436,6 @@ namespace Cysharp.Threading.Tasks
if (asyncOperation.isDone) if (asyncOperation.isDone)
{ {
cancellationTokenRegistration.Dispose();
allowReturn = true;
core.TrySetResult(asyncOperation.asset); core.TrySetResult(asyncOperation.asset);
return false; return false;
} }
@@ -484,31 +446,29 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
cancellationTokenRegistration.Dispose();
core.Reset(); core.Reset();
asyncOperation.completed -= continuationAction; asyncOperation.completed -= continuationAction;
asyncOperation = default; asyncOperation = default;
progress = default; progress = default;
cancellationToken = default; cancellationToken = default;
cancellationTokenRegistration.Dispose();
cancelImmediately = default; cancelImmediately = default;
return pool.TryPush(this); return pool.TryPush(this);
} }
void Continuation(AsyncOperation _) void Continuation(AsyncOperation _)
{ {
if (completed)
{
return;
}
completed = true; completed = true;
cancellationTokenRegistration.Dispose();
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
{ {
core.TrySetCanceled(cancellationToken); core.TrySetCanceled(cancellationToken);
} }
else else
{ {
if (progress != null)
{
progress.Report(asyncOperation.progress);
}
core.TrySetResult(asyncOperation.asset); core.TrySetResult(asyncOperation.asset);
} }
} }
@@ -604,7 +564,6 @@ namespace Cysharp.Threading.Tasks
CancellationTokenRegistration cancellationTokenRegistration; CancellationTokenRegistration cancellationTokenRegistration;
bool cancelImmediately; bool cancelImmediately;
bool completed; bool completed;
bool allowReturn;
UniTaskCompletionSourceCore<UnityEngine.Object> core; UniTaskCompletionSourceCore<UnityEngine.Object> core;
@@ -632,7 +591,6 @@ namespace Cysharp.Threading.Tasks
result.cancellationToken = cancellationToken; result.cancellationToken = cancellationToken;
result.cancelImmediately = cancelImmediately; result.cancelImmediately = cancelImmediately;
result.completed = false; result.completed = false;
result.allowReturn = false;
asyncOperation.completed += result.continuationAction; asyncOperation.completed += result.continuationAction;
@@ -661,16 +619,9 @@ namespace Cysharp.Threading.Tasks
} }
finally finally
{ {
if (!cancellationToken.IsCancellationRequested) if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
{ {
if (allowReturn) TryReturn();
{
TryReturn();
}
else
{
allowReturn = true;
}
} }
else else
{ {
@@ -701,15 +652,9 @@ namespace Cysharp.Threading.Tasks
public bool MoveNext() public bool MoveNext()
{ {
if (allowReturn) // Already completed
if (completed || asyncOperation == null)
{ {
TryReturn();
return false;
}
if (completed)
{
allowReturn = true;
return false; return false;
} }
@@ -726,8 +671,6 @@ namespace Cysharp.Threading.Tasks
if (asyncOperation.isDone) if (asyncOperation.isDone)
{ {
cancellationTokenRegistration.Dispose();
allowReturn = true;
core.TrySetResult(asyncOperation.asset); core.TrySetResult(asyncOperation.asset);
return false; return false;
} }
@@ -738,31 +681,29 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
cancellationTokenRegistration.Dispose();
core.Reset(); core.Reset();
asyncOperation.completed -= continuationAction; asyncOperation.completed -= continuationAction;
asyncOperation = default; asyncOperation = default;
progress = default; progress = default;
cancellationToken = default; cancellationToken = default;
cancellationTokenRegistration.Dispose();
cancelImmediately = default; cancelImmediately = default;
return pool.TryPush(this); return pool.TryPush(this);
} }
void Continuation(AsyncOperation _) void Continuation(AsyncOperation _)
{ {
if (completed)
{
return;
}
completed = true; completed = true;
cancellationTokenRegistration.Dispose();
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
{ {
core.TrySetCanceled(cancellationToken); core.TrySetCanceled(cancellationToken);
} }
else else
{ {
if (progress != null)
{
progress.Report(asyncOperation.progress);
}
core.TrySetResult(asyncOperation.asset); core.TrySetResult(asyncOperation.asset);
} }
} }
@@ -859,7 +800,6 @@ namespace Cysharp.Threading.Tasks
CancellationTokenRegistration cancellationTokenRegistration; CancellationTokenRegistration cancellationTokenRegistration;
bool cancelImmediately; bool cancelImmediately;
bool completed; bool completed;
bool allowReturn;
UniTaskCompletionSourceCore<AssetBundle> core; UniTaskCompletionSourceCore<AssetBundle> core;
@@ -887,7 +827,6 @@ namespace Cysharp.Threading.Tasks
result.cancellationToken = cancellationToken; result.cancellationToken = cancellationToken;
result.cancelImmediately = cancelImmediately; result.cancelImmediately = cancelImmediately;
result.completed = false; result.completed = false;
result.allowReturn = false;
asyncOperation.completed += result.continuationAction; asyncOperation.completed += result.continuationAction;
@@ -916,16 +855,9 @@ namespace Cysharp.Threading.Tasks
} }
finally finally
{ {
if (!cancellationToken.IsCancellationRequested) if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
{ {
if (allowReturn) TryReturn();
{
TryReturn();
}
else
{
allowReturn = true;
}
} }
else else
{ {
@@ -956,15 +888,9 @@ namespace Cysharp.Threading.Tasks
public bool MoveNext() public bool MoveNext()
{ {
if (allowReturn) // Already completed
if (completed || asyncOperation == null)
{ {
TryReturn();
return false;
}
if (completed)
{
allowReturn = true;
return false; return false;
} }
@@ -981,8 +907,6 @@ namespace Cysharp.Threading.Tasks
if (asyncOperation.isDone) if (asyncOperation.isDone)
{ {
cancellationTokenRegistration.Dispose();
allowReturn = true;
core.TrySetResult(asyncOperation.assetBundle); core.TrySetResult(asyncOperation.assetBundle);
return false; return false;
} }
@@ -992,32 +916,30 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
cancellationTokenRegistration.Dispose();
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
core.Reset(); core.Reset();
asyncOperation.completed -= continuationAction; asyncOperation.completed -= continuationAction;
asyncOperation = default; asyncOperation = default;
progress = default; progress = default;
cancellationToken = default; cancellationToken = default;
cancellationTokenRegistration.Dispose();
cancelImmediately = default; cancelImmediately = default;
return pool.TryPush(this); return pool.TryPush(this);
} }
void Continuation(AsyncOperation _) void Continuation(AsyncOperation _)
{ {
if (completed)
{
return;
}
completed = true; completed = true;
cancellationTokenRegistration.Dispose();
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
{ {
core.TrySetCanceled(cancellationToken); core.TrySetCanceled(cancellationToken);
} }
else else
{ {
if (progress != null)
{
progress.Report(asyncOperation.progress);
}
core.TrySetResult(asyncOperation.assetBundle); core.TrySetResult(asyncOperation.assetBundle);
} }
} }
@@ -1129,7 +1051,6 @@ namespace Cysharp.Threading.Tasks
CancellationTokenRegistration cancellationTokenRegistration; CancellationTokenRegistration cancellationTokenRegistration;
bool cancelImmediately; bool cancelImmediately;
bool completed; bool completed;
bool allowReturn;
UniTaskCompletionSourceCore<UnityWebRequest> core; UniTaskCompletionSourceCore<UnityWebRequest> core;
@@ -1157,7 +1078,6 @@ namespace Cysharp.Threading.Tasks
result.cancellationToken = cancellationToken; result.cancellationToken = cancellationToken;
result.cancelImmediately = cancelImmediately; result.cancelImmediately = cancelImmediately;
result.completed = false; result.completed = false;
result.allowReturn = false;
asyncOperation.completed += result.continuationAction; asyncOperation.completed += result.continuationAction;
@@ -1187,16 +1107,9 @@ namespace Cysharp.Threading.Tasks
} }
finally finally
{ {
if (!cancellationToken.IsCancellationRequested) if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
{ {
if (allowReturn) TryReturn();
{
TryReturn();
}
else
{
allowReturn = true;
}
} }
else else
{ {
@@ -1227,20 +1140,15 @@ namespace Cysharp.Threading.Tasks
public bool MoveNext() public bool MoveNext()
{ {
if (allowReturn) // Already completed
if (completed || asyncOperation == null)
{ {
TryReturn();
return false;
}
if (completed)
{
allowReturn = true;
return false; return false;
} }
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
{ {
asyncOperation.webRequest.Abort();
core.TrySetCanceled(cancellationToken); core.TrySetCanceled(cancellationToken);
return false; return false;
} }
@@ -1252,9 +1160,14 @@ namespace Cysharp.Threading.Tasks
if (asyncOperation.isDone) if (asyncOperation.isDone)
{ {
cancellationTokenRegistration.Dispose(); if (asyncOperation.webRequest.IsError())
allowReturn = true; {
core.TrySetResult(asyncOperation.webRequest); core.TrySetException(new UnityWebRequestException(asyncOperation.webRequest));
}
else
{
core.TrySetResult(asyncOperation.webRequest);
}
return false; return false;
} }
@@ -1263,22 +1176,24 @@ namespace Cysharp.Threading.Tasks
bool TryReturn() bool TryReturn()
{ {
cancellationTokenRegistration.Dispose();
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
core.Reset(); core.Reset();
asyncOperation.completed -= continuationAction; asyncOperation.completed -= continuationAction;
asyncOperation = default; asyncOperation = default;
progress = default; progress = default;
cancellationToken = default; cancellationToken = default;
cancellationTokenRegistration.Dispose();
cancelImmediately = default; cancelImmediately = default;
return pool.TryPush(this); return pool.TryPush(this);
} }
void Continuation(AsyncOperation _) void Continuation(AsyncOperation _)
{ {
if (completed)
{
return;
}
completed = true; completed = true;
cancellationTokenRegistration.Dispose();
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
{ {
core.TrySetCanceled(cancellationToken); core.TrySetCanceled(cancellationToken);
@@ -1289,11 +1204,6 @@ namespace Cysharp.Threading.Tasks
} }
else else
{ {
if (progress != null)
{
progress.Report(asyncOperation.progress);
}
core.TrySetResult(asyncOperation.webRequest); core.TrySetResult(asyncOperation.webRequest);
} }
} }

View File

@@ -2,7 +2,7 @@
"name": "com.cysharp.unitask", "name": "com.cysharp.unitask",
"displayName": "UniTask", "displayName": "UniTask",
"author": { "name": "Cysharp, Inc.", "url": "https://cysharp.co.jp/en/" }, "author": { "name": "Cysharp, Inc.", "url": "https://cysharp.co.jp/en/" },
"version": "2.5.9", "version": "2.5.10",
"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

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: b055f3837a55b4a44abf9bf4bcb3594f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1 +0,0 @@
MyTEST

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 49ccc900467d35543bb602a3de4d786a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -21,6 +21,7 @@ using System.Linq.Expressions;
using UnityEngine.Events; using UnityEngine.Events;
// using DG.Tweening; // using DG.Tweening;
@@ -591,78 +592,69 @@ public class SandboxMain : MonoBehaviour
async UniTaskVoid Start() async UniTaskVoid Start()
{ {
var p = Progress.Create<float>(x => await new WhenEachTest().Each();
// UniTask.Delay(TimeSpan.FromSeconds(1)).TimeoutWithoutException
var currentLoop = PlayerLoop.GetDefaultPlayerLoop();
PlayerLoopHelper.Initialize(ref currentLoop, InjectPlayerLoopTimings.Minimum); // minimum is Update | FixedUpdate | LastPostLateUpdate
// TestAsync(cts.Token).Forget();
okButton.onClick.AddListener(UniTask.UnityAction(async () =>
{ {
Debug.Log(x); await UniTask.WaitForEndOfFrame(this);
}); var texture = new Texture2D(Screen.width, Screen.height);
var foo = await Resources.LoadAsync("test2").ToUniTask(progress: p) as TextAsset; texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
Debug.Log(foo.text); texture.Apply();
//var foo2 = await Resources.LoadAsync("test2").ToUniTask() as TextAsset;
//Debug.Log(foo2.text); // onemore?
var jpg = texture.EncodeToJPG();
File.WriteAllBytes("testscreencapture.jpg", jpg);
Debug.Log("ok?");
//var texture = ScreenCapture.CaptureScreenshotAsTexture();
//if (texture == null)
//{
// Debug.Log("fail");
//}
//else
//{
// var jpg = texture.EncodeToJPG();
// File.WriteAllBytes("testscreencapture.jpg", jpg);
// Debug.Log("ok?");
//}
}));
//await new WhenEachTest().Each(); cancelButton.onClick.AddListener(UniTask.UnityAction(async () =>
{
//clickCancelSource.Cancel();
//RunCheck(PlayerLoopTiming.Initialization).Forget();
//RunCheck(PlayerLoopTiming.LastInitialization).Forget();
//RunCheck(PlayerLoopTiming.EarlyUpdate).Forget();
//RunCheck(PlayerLoopTiming.LastEarlyUpdate).Forget();
//RunCheck(PlayerLoopTiming.FixedUpdate).Forget();
//RunCheck(PlayerLoopTiming.LastFixedUpdate).Forget();
//RunCheck(PlayerLoopTiming.PreUpdate).Forget();
//RunCheck(PlayerLoopTiming.LastPreUpdate).Forget();
//RunCheck(PlayerLoopTiming.Update).Forget();
//RunCheck(PlayerLoopTiming.LastUpdate).Forget();
//RunCheck(PlayerLoopTiming.PreLateUpdate).Forget();
//RunCheck(PlayerLoopTiming.LastPreLateUpdate).Forget();
//RunCheck(PlayerLoopTiming.PostLateUpdate).Forget();
//RunCheck(PlayerLoopTiming.LastPostLateUpdate).Forget();
//// UniTask.Delay(TimeSpan.FromSeconds(1)).TimeoutWithoutException await UniTask.Yield();
}));
await UniTask.Yield();
//var currentLoop = PlayerLoop.GetDefaultPlayerLoop();
//PlayerLoopHelper.Initialize(ref currentLoop, InjectPlayerLoopTimings.Minimum); // minimum is Update | FixedUpdate | LastPostLateUpdate
//// TestAsync(cts.Token).Forget();
//okButton.onClick.AddListener(UniTask.UnityAction(async () =>
//{
// await UniTask.WaitForEndOfFrame(this);
// var texture = new Texture2D(Screen.width, Screen.height);
// texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
// texture.Apply();
// var jpg = texture.EncodeToJPG();
// File.WriteAllBytes("testscreencapture.jpg", jpg);
// Debug.Log("ok?");
// //var texture = ScreenCapture.CaptureScreenshotAsTexture();
// //if (texture == null)
// //{
// // Debug.Log("fail");
// //}
// //else
// //{
// // var jpg = texture.EncodeToJPG();
// // File.WriteAllBytes("testscreencapture.jpg", jpg);
// // Debug.Log("ok?");
// //}
//}));
//cancelButton.onClick.AddListener(UniTask.UnityAction(async () =>
//{
// //clickCancelSource.Cancel();
// //RunCheck(PlayerLoopTiming.Initialization).Forget();
// //RunCheck(PlayerLoopTiming.LastInitialization).Forget();
// //RunCheck(PlayerLoopTiming.EarlyUpdate).Forget();
// //RunCheck(PlayerLoopTiming.LastEarlyUpdate).Forget();
// //RunCheck(PlayerLoopTiming.FixedUpdate).Forget();
// //RunCheck(PlayerLoopTiming.LastFixedUpdate).Forget();
// //RunCheck(PlayerLoopTiming.PreUpdate).Forget();
// //RunCheck(PlayerLoopTiming.LastPreUpdate).Forget();
// //RunCheck(PlayerLoopTiming.Update).Forget();
// //RunCheck(PlayerLoopTiming.LastUpdate).Forget();
// //RunCheck(PlayerLoopTiming.PreLateUpdate).Forget();
// //RunCheck(PlayerLoopTiming.LastPreLateUpdate).Forget();
// //RunCheck(PlayerLoopTiming.PostLateUpdate).Forget();
// //RunCheck(PlayerLoopTiming.LastPostLateUpdate).Forget();
// await UniTask.Yield();
//}));
} }
async UniTaskVoid RunCheck(PlayerLoopTiming timing) async UniTaskVoid RunCheck(PlayerLoopTiming timing)