test all passed

This commit is contained in:
neuecc
2020-05-05 18:12:52 +09:00
parent eb379903b8
commit a26a806b0f
2 changed files with 132 additions and 59 deletions

View File

@@ -6,10 +6,29 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using UniRx.Async;
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
public struct MyJob : IJob
{
public int loopCount;
public NativeArray<int> inOut;
public int result;
public void Execute()
{
result = 0;
for (int i = 0; i < loopCount; i++)
{
result++;
}
inOut[0] = result;
}
}
public class SandboxMain : MonoBehaviour
{
public Button okButton;
@@ -20,11 +39,45 @@ public class SandboxMain : MonoBehaviour
UniTaskCompletionSource ucs;
async UniTask RunStandardDelayAsync()
{
UnityEngine.Debug.Log("DEB");
await UniTask.DelayFrame(30);
UnityEngine.Debug.Log("DEB END");
}
async UniTask RunJobAsync()
{
var job = new MyJob() { loopCount = 999, inOut = new NativeArray<int>(1, Allocator.TempJob) };
JobHandle.ScheduleBatchedJobs();
var scheduled = job.Schedule();
UnityEngine.Debug.Log("OK");
await scheduled; // .ConfigureAwait(PlayerLoopTiming.Update); // .WaitAsync(PlayerLoopTiming.Update);
UnityEngine.Debug.Log("OK2");
job.inOut.Dispose();
}
void Start()
{
Application.SetStackTraceLogType(LogType.Error, StackTraceLogType.Full);
Application.SetStackTraceLogType(LogType.Exception, StackTraceLogType.Full);
var playerLoop = UnityEngine.LowLevel.PlayerLoop.GetCurrentPlayerLoop();
ShowPlayerLoop.DumpPlayerLoop("Current", playerLoop);
RunStandardDelayAsync().Forget();
//for (int i = 0; i < 14; i++)
//{
// TimingDump((PlayerLoopTiming)i).Forget();
@@ -36,6 +89,19 @@ public class SandboxMain : MonoBehaviour
// -----
RunJobAsync().Forget();
//var cor = UniTask.ToCoroutine(async () =>
// {
// var job = new MyJob() { loopCount = 999, inOut = new NativeArray<int>(1, Allocator.TempJob) };
// JobHandle.ScheduleBatchedJobs();
// await job.Schedule().WaitAsync(PlayerLoopTiming.Update);
// job.inOut.Dispose();
// });
//StartCoroutine(cor);
Application.logMessageReceived += Application_logMessageReceived;
@@ -56,6 +122,22 @@ public class SandboxMain : MonoBehaviour
});
}
async UniTask SimpleAwait()
{
await UniTask.Yield();
await UniTask.Yield();
await UniTask.Yield();
throw new InvalidOperationException("bar!!!");
}
IEnumerator SimpleCoroutine()
{
yield return null;
yield return null;
yield return null;
throw new InvalidOperationException("foo!!!");
}
async UniTask TimingDump(PlayerLoopTiming timing)
{
while (true)
@@ -124,33 +206,33 @@ public class SandboxMain : MonoBehaviour
}
}
/*
PlayerLoopTiming.Initialization
PlayerLoopTiming.LastInitialization
PlayerLoopTiming.EarlyUpdate
PlayerLoopTiming.LastEarlyUpdate
PlayerLoopTiming.PreUpdate
PlayerLoopTiming.LastPreUpdate
PlayerLoopTiming.Update
Update
yield null
yield WaitForSeconds
yield WWW
yield StartCoroutine
PlayerLoopTiming.LastUpdate
PlayerLoopTiming.PreLateUpdate
LateUpdate
PlayerLoopTiming.LastPreLateUpdate
PlayerLoopTiming.PostLateUpdate
PlayerLoopTiming.LastPostLateUpdate
yield WaitForEndOfFrame
/*
PlayerLoopTiming.Initialization
PlayerLoopTiming.LastInitialization
PlayerLoopTiming.EarlyUpdate
PlayerLoopTiming.LastEarlyUpdate
PlayerLoopTiming.PreUpdate
PlayerLoopTiming.LastPreUpdate
PlayerLoopTiming.Update
Update
yield null
yield WaitForSeconds
yield WWW
yield StartCoroutine
PlayerLoopTiming.LastUpdate
PlayerLoopTiming.PreLateUpdate
LateUpdate
PlayerLoopTiming.LastPreLateUpdate
PlayerLoopTiming.PostLateUpdate
PlayerLoopTiming.LastPostLateUpdate
yield WaitForEndOfFrame
// --- Physics Loop
PlayerLoopTiming.FixedUpdate
FixedUpdate
yield WaitForFixedUpdate
PlayerLoopTiming.LastFixedUpdate
*/
// --- Physics Loop
PlayerLoopTiming.FixedUpdate
FixedUpdate
yield WaitForFixedUpdate
PlayerLoopTiming.LastFixedUpdate
*/