实例介绍
UniTask提供了高效的无分配异步/等待集成,采用基于结构体的UniTask和自定义AsyncMethodBuilder实现零分配。
使所有Unity AsyncOperations和Coroutines都可等待。
PlayerLoop基于任务(UniTask.Yield、UniTask.Delay、UniTask.DelayFrame等),可以替代所有的协程操作。
MonoBehaviour消息事件和uGUI事件可作为可等待/异步可枚举。
完全运行在Unity的PlayerLoop上,不使用线程,并在WebGL、wasm等上运行。
支持异步LINQ,具有通道和AsyncReactiveProperty。
TaskTracker窗口可防止内存泄漏。
与Task/ValueTask/IValueTaskSource高度兼容。
【实例截图】
文件清单
└── UniTask-2e225fb8414e023df2aa3acae2ef225471981316
├── docs
│ ├── api
│ ├── docfx.json
│ ├── index.md
│ └── toc.yml
├── LICENSE
├── README_CN.md
├── README.md
├── src
│ ├── UniTask
│ │ ├── Assets
│ │ │ ├── Editor
│ │ │ │ ├── EditorRunnerChecker.cs
│ │ │ │ ├── EditorRunnerChecker.cs.meta
│ │ │ │ ├── PackageExporter.cs
│ │ │ │ └── PackageExporter.cs.meta
│ │ │ ├── Editor.meta
│ │ │ ├── Plugins
│ │ │ │ ├── UniTask
│ │ │ │ │ ├── Editor
│ │ │ │ │ │ ├── SplitterGUILayout.cs
│ │ │ │ │ │ ├── SplitterGUILayout.cs.meta
│ │ │ │ │ │ ├── UniTask.Editor.asmdef
│ │ │ │ │ │ ├── UniTask.Editor.asmdef.meta
│ │ │ │ │ │ ├── UniTaskTrackerTreeView.cs
│ │ │ │ │ │ ├── UniTaskTrackerTreeView.cs.meta
│ │ │ │ │ │ ├── UniTaskTrackerWindow.cs
│ │ │ │ │ │ └── UniTaskTrackerWindow.cs.meta
│ │ │ │ │ ├── Editor.meta
│ │ │ │ │ ├── package.json
│ │ │ │ │ ├── package.json.meta
│ │ │ │ │ ├── Runtime
│ │ │ │ │ │ ├── AsyncLazy.cs
│ │ │ │ │ │ ├── AsyncLazy.cs.meta
│ │ │ │ │ │ ├── AsyncReactiveProperty.cs
│ │ │ │ │ │ ├── AsyncReactiveProperty.cs.meta
│ │ │ │ │ │ ├── AsyncUnit.cs
│ │ │ │ │ │ ├── AsyncUnit.cs.meta
│ │ │ │ │ │ ├── CancellationTokenEqualityComparer.cs
│ │ │ │ │ │ ├── CancellationTokenEqualityComparer.cs.meta
│ │ │ │ │ │ ├── CancellationTokenExtensions.cs
│ │ │ │ │ │ ├── CancellationTokenExtensions.cs.meta
│ │ │ │ │ │ ├── CancellationTokenSourceExtensions.cs
│ │ │ │ │ │ ├── CancellationTokenSourceExtensions.cs.meta
│ │ │ │ │ │ ├── Channel.cs
│ │ │ │ │ │ ├── Channel.cs.meta
│ │ │ │ │ │ ├── CompilerServices
│ │ │ │ │ │ │ ├── AsyncMethodBuilderAttribute.cs
│ │ │ │ │ │ │ ├── AsyncMethodBuilderAttribute.cs.meta
│ │ │ │ │ │ │ ├── AsyncUniTaskMethodBuilder.cs
│ │ │ │ │ │ │ ├── AsyncUniTaskMethodBuilder.cs.meta
│ │ │ │ │ │ │ ├── AsyncUniTaskVoidMethodBuilder.cs
│ │ │ │ │ │ │ ├── AsyncUniTaskVoidMethodBuilder.cs.meta
│ │ │ │ │ │ │ ├── StateMachineRunner.cs
│ │ │ │ │ │ │ └── StateMachineRunner.cs.meta
│ │ │ │ │ │ ├── CompilerServices.meta
│ │ │ │ │ │ ├── EnumerableAsyncExtensions.cs
│ │ │ │ │ │ ├── EnumerableAsyncExtensions.cs.meta
│ │ │ │ │ │ ├── EnumeratorAsyncExtensions.cs
│ │ │ │ │ │ ├── EnumeratorAsyncExtensions.cs.meta
│ │ │ │ │ │ ├── ExceptionExtensions.cs
│ │ │ │ │ │ ├── ExceptionExtensions.cs.meta
│ │ │ │ │ │ ├── External
│ │ │ │ │ │ │ ├── Addressables
│ │ │ │ │ │ │ │ ├── AddressablesAsyncExtensions.cs
│ │ │ │ │ │ │ │ ├── AddressablesAsyncExtensions.cs.meta
│ │ │ │ │ │ │ │ ├── UniTask.Addressables.asmdef
│ │ │ │ │ │ │ │ └── UniTask.Addressables.asmdef.meta
│ │ │ │ │ │ │ ├── Addressables.meta
│ │ │ │ │ │ │ ├── DOTween
│ │ │ │ │ │ │ │ ├── DOTweenAsyncExtensions.cs
│ │ │ │ │ │ │ │ ├── DOTweenAsyncExtensions.cs.meta
│ │ │ │ │ │ │ │ ├── UniTask.DOTween.asmdef
│ │ │ │ │ │ │ │ └── UniTask.DOTween.asmdef.meta
│ │ │ │ │ │ │ ├── DOTween.meta
│ │ │ │ │ │ │ ├── TextMeshPro
│ │ │ │ │ │ │ │ ├── TextMeshProAsyncExtensions.cs
│ │ │ │ │ │ │ │ ├── TextMeshProAsyncExtensions.cs.meta
│ │ │ │ │ │ │ │ ├── TextMeshProAsyncExtensions.InputField.cs
│ │ │ │ │ │ │ │ ├── TextMeshProAsyncExtensions.InputField.cs.meta
│ │ │ │ │ │ │ │ ├── TextMeshProAsyncExtensions.InputField.tt
│ │ │ │ │ │ │ │ ├── TextMeshProAsyncExtensions.InputField.tt.meta
│ │ │ │ │ │ │ │ ├── UniTask.TextMeshPro.asmdef
│ │ │ │ │ │ │ │ └── UniTask.TextMeshPro.asmdef.meta
│ │ │ │ │ │ │ └── TextMeshPro.meta
│ │ │ │ │ │ ├── External.meta
│ │ │ │ │ │ ├── Internal
│ │ │ │ │ │ │ ├── ArrayPool.cs
│ │ │ │ │ │ │ ├── ArrayPool.cs.meta
│ │ │ │ │ │ │ ├── ArrayPoolUtil.cs
│ │ │ │ │ │ │ ├── ArrayPoolUtil.cs.meta
│ │ │ │ │ │ │ ├── ArrayUtil.cs
│ │ │ │ │ │ │ ├── ArrayUtil.cs.meta
│ │ │ │ │ │ │ ├── ContinuationQueue.cs
│ │ │ │ │ │ │ ├── ContinuationQueue.cs.meta
│ │ │ │ │ │ │ ├── DiagnosticsExtensions.cs
│ │ │ │ │ │ │ ├── DiagnosticsExtensions.cs.meta
│ │ │ │ │ │ │ ├── Error.cs
│ │ │ │ │ │ │ ├── Error.cs.meta
│ │ │ │ │ │ │ ├── MinimumQueue.cs
│ │ │ │ │ │ │ ├── MinimumQueue.cs.meta
│ │ │ │ │ │ │ ├── PlayerLoopRunner.cs
│ │ │ │ │ │ │ ├── PlayerLoopRunner.cs.meta
│ │ │ │ │ │ │ ├── PooledDelegate.cs
│ │ │ │ │ │ │ ├── PooledDelegate.cs.meta
│ │ │ │ │ │ │ ├── RuntimeHelpersAbstraction.cs
│ │ │ │ │ │ │ ├── RuntimeHelpersAbstraction.cs.meta
│ │ │ │ │ │ │ ├── StatePool.cs
│ │ │ │ │ │ │ ├── StatePool.cs.meta
│ │ │ │ │ │ │ ├── TaskTracker.cs
│ │ │ │ │ │ │ ├── TaskTracker.cs.meta
│ │ │ │ │ │ │ ├── UnityEqualityComparer.cs
│ │ │ │ │ │ │ ├── UnityEqualityComparer.cs.meta
│ │ │ │ │ │ │ ├── UnityWebRequestExtensions.cs
│ │ │ │ │ │ │ ├── UnityWebRequestExtensions.cs.meta
│ │ │ │ │ │ │ ├── ValueStopwatch.cs
│ │ │ │ │ │ │ ├── ValueStopwatch.cs.meta
│ │ │ │ │ │ │ ├── WeakDictionary.cs
│ │ │ │ │ │ │ └── WeakDictionary.cs.meta
│ │ │ │ │ │ ├── Internal.meta
│ │ │ │ │ │ ├── _InternalVisibleTo.cs
│ │ │ │ │ │ ├── _InternalVisibleTo.cs.meta
│ │ │ │ │ │ ├── IUniTaskAsyncEnumerable.cs
│ │ │ │ │ │ ├── IUniTaskAsyncEnumerable.cs.meta
│ │ │ │ │ │ ├── IUniTaskSource.cs
│ │ │ │ │ │ ├── IUniTaskSource.cs.meta
│ │ │ │ │ │ ├── Linq
│ │ │ │ │ │ │ ├── Aggregate.cs
│ │ │ │ │ │ │ ├── Aggregate.cs.meta
│ │ │ │ │ │ │ ├── All.cs
│ │ │ │ │ │ │ ├── All.cs.meta
│ │ │ │ │ │ │ ├── Any.cs
│ │ │ │ │ │ │ ├── Any.cs.meta
│ │ │ │ │ │ │ ├── AppendPrepend.cs
│ │ │ │ │ │ │ ├── AppendPrepend.cs.meta
│ │ │ │ │ │ │ ├── AsUniTaskAsyncEnumerable.cs
│ │ │ │ │ │ │ ├── AsUniTaskAsyncEnumerable.cs.meta
│ │ │ │ │ │ │ ├── AsyncEnumeratorBase.cs
│ │ │ │ │ │ │ ├── AsyncEnumeratorBase.cs.meta
│ │ │ │ │ │ │ ├── Average.cs
│ │ │ │ │ │ │ ├── Average.cs.meta
│ │ │ │ │ │ │ ├── Average.tt
│ │ │ │ │ │ │ ├── Average.tt.meta
│ │ │ │ │ │ │ ├── Buffer.cs
│ │ │ │ │ │ │ ├── Buffer.cs.meta
│ │ │ │ │ │ │ ├── Cast.cs
│ │ │ │ │ │ │ ├── Cast.cs.meta
│ │ │ │ │ │ │ ├── CombineLatest.cs
│ │ │ │ │ │ │ ├── CombineLatest.cs.meta
│ │ │ │ │ │ │ ├── CombineLatest.tt
│ │ │ │ │ │ │ ├── CombineLatest.tt.meta
│ │ │ │ │ │ │ ├── Concat.cs
│ │ │ │ │ │ │ ├── Concat.cs.meta
│ │ │ │ │ │ │ ├── Contains.cs
│ │ │ │ │ │ │ ├── Contains.cs.meta
│ │ │ │ │ │ │ ├── Count.cs
│ │ │ │ │ │ │ ├── Count.cs.meta
│ │ │ │ │ │ │ ├── Create.cs
│ │ │ │ │ │ │ ├── Create.cs.meta
│ │ │ │ │ │ │ ├── DefaultIfEmpty.cs
│ │ │ │ │ │ │ ├── DefaultIfEmpty.cs.meta
│ │ │ │ │ │ │ ├── Distinct.cs
│ │ │ │ │ │ │ ├── Distinct.cs.meta
│ │ │ │ │ │ │ ├── DistinctUntilChanged.cs
│ │ │ │ │ │ │ ├── DistinctUntilChanged.cs.meta
│ │ │ │ │ │ │ ├── Do.cs
│ │ │ │ │ │ │ ├── Do.cs.meta
│ │ │ │ │ │ │ ├── ElementAt.cs
│ │ │ │ │ │ │ ├── ElementAt.cs.meta
│ │ │ │ │ │ │ ├── Empty.cs
│ │ │ │ │ │ │ ├── Empty.cs.meta
│ │ │ │ │ │ │ ├── Except.cs
│ │ │ │ │ │ │ ├── Except.cs.meta
│ │ │ │ │ │ │ ├── First.cs
│ │ │ │ │ │ │ ├── First.cs.meta
│ │ │ │ │ │ │ ├── ForEach.cs
│ │ │ │ │ │ │ ├── ForEach.cs.meta
│ │ │ │ │ │ │ ├── GroupBy.cs
│ │ │ │ │ │ │ ├── GroupBy.cs.meta
│ │ │ │ │ │ │ ├── GroupJoin.cs
│ │ │ │ │ │ │ ├── GroupJoin.cs.meta
│ │ │ │ │ │ │ ├── Intersect.cs
│ │ │ │ │ │ │ ├── Intersect.cs.meta
│ │ │ │ │ │ │ ├── Join.cs
│ │ │ │ │ │ │ ├── Join.cs.meta
│ │ │ │ │ │ │ ├── Last.cs
│ │ │ │ │ │ │ ├── Last.cs.meta
│ │ │ │ │ │ │ ├── LongCount.cs
│ │ │ │ │ │ │ ├── LongCount.cs.meta
│ │ │ │ │ │ │ ├── Max.cs
│ │ │ │ │ │ │ ├── Max.cs.meta
│ │ │ │ │ │ │ ├── Merge.cs
│ │ │ │ │ │ │ ├── Merge.cs.meta
│ │ │ │ │ │ │ ├── Min.cs
│ │ │ │ │ │ │ ├── Min.cs.meta
│ │ │ │ │ │ │ ├── MinMax.cs
│ │ │ │ │ │ │ ├── MinMax.cs.meta
│ │ │ │ │ │ │ ├── MinMax.tt
│ │ │ │ │ │ │ ├── MinMax.tt.meta
│ │ │ │ │ │ │ ├── Never.cs
│ │ │ │ │ │ │ ├── Never.cs.meta
│ │ │ │ │ │ │ ├── OfType.cs
│ │ │ │ │ │ │ ├── OfType.cs.meta
│ │ │ │ │ │ │ ├── OrderBy.cs
│ │ │ │ │ │ │ ├── OrderBy.cs.meta
│ │ │ │ │ │ │ ├── Pairwise.cs
│ │ │ │ │ │ │ ├── Pairwise.cs.meta
│ │ │ │ │ │ │ ├── Publish.cs
│ │ │ │ │ │ │ ├── Publish.cs.meta
│ │ │ │ │ │ │ ├── Queue.cs
│ │ │ │ │ │ │ ├── Queue.cs.meta
│ │ │ │ │ │ │ ├── Range.cs
│ │ │ │ │ │ │ ├── Range.cs.meta
│ │ │ │ │ │ │ ├── Repeat.cs
│ │ │ │ │ │ │ ├── Repeat.cs.meta
│ │ │ │ │ │ │ ├── Return.cs
│ │ │ │ │ │ │ ├── Return.cs.meta
│ │ │ │ │ │ │ ├── Reverse.cs
│ │ │ │ │ │ │ ├── Reverse.cs.meta
│ │ │ │ │ │ │ ├── Select.cs
│ │ │ │ │ │ │ ├── Select.cs.meta
│ │ │ │ │ │ │ ├── SelectMany.cs
│ │ │ │ │ │ │ ├── SelectMany.cs.meta
│ │ │ │ │ │ │ ├── SequenceEqual.cs
│ │ │ │ │ │ │ ├── SequenceEqual.cs.meta
│ │ │ │ │ │ │ ├── Single.cs
│ │ │ │ │ │ │ ├── Single.cs.meta
│ │ │ │ │ │ │ ├── Skip.cs
│ │ │ │ │ │ │ ├── Skip.cs.meta
│ │ │ │ │ │ │ ├── SkipLast.cs
│ │ │ │ │ │ │ ├── SkipLast.cs.meta
│ │ │ │ │ │ │ ├── SkipUntilCanceled.cs
│ │ │ │ │ │ │ ├── SkipUntilCanceled.cs.meta
│ │ │ │ │ │ │ ├── SkipUntil.cs
│ │ │ │ │ │ │ ├── SkipUntil.cs.meta
│ │ │ │ │ │ │ ├── SkipWhile.cs
│ │ │ │ │ │ │ ├── SkipWhile.cs.meta
│ │ │ │ │ │ │ ├── Subscribe.cs
│ │ │ │ │ │ │ ├── Subscribe.cs.meta
│ │ │ │ │ │ │ ├── Sum.cs
│ │ │ │ │ │ │ ├── Sum.cs.meta
│ │ │ │ │ │ │ ├── Sum.tt
│ │ │ │ │ │ │ ├── Sum.tt.meta
│ │ │ │ │ │ │ ├── Take.cs
│ │ │ │ │ │ │ ├── Take.cs.meta
│ │ │ │ │ │ │ ├── TakeLast.cs
│ │ │ │ │ │ │ ├── TakeLast.cs.meta
│ │ │ │ │ │ │ ├── TakeUntilCanceled.cs
│ │ │ │ │ │ │ ├── TakeUntilCanceled.cs.meta
│ │ │ │ │ │ │ ├── TakeUntil.cs
│ │ │ │ │ │ │ ├── TakeUntil.cs.meta
│ │ │ │ │ │ │ ├── TakeWhile.cs
│ │ │ │ │ │ │ ├── TakeWhile.cs.meta
│ │ │ │ │ │ │ ├── Throw.cs
│ │ │ │ │ │ │ ├── Throw.cs.meta
│ │ │ │ │ │ │ ├── ToArray.cs
│ │ │ │ │ │ │ ├── ToArray.cs.meta
│ │ │ │ │ │ │ ├── ToDictionary.cs
│ │ │ │ │ │ │ ├── ToDictionary.cs.meta
│ │ │ │ │ │ │ ├── ToHashSet.cs
│ │ │ │ │ │ │ ├── ToHashSet.cs.meta
│ │ │ │ │ │ │ ├── ToList.cs
│ │ │ │ │ │ │ ├── ToList.cs.meta
│ │ │ │ │ │ │ ├── ToLookup.cs
│ │ │ │ │ │ │ ├── ToLookup.cs.meta
│ │ │ │ │ │ │ ├── ToObservable.cs
│ │ │ │ │ │ │ ├── ToObservable.cs.meta
│ │ │ │ │ │ │ ├── ToUniTaskAsyncEnumerable.cs
│ │ │ │ │ │ │ ├── ToUniTaskAsyncEnumerable.cs.meta
│ │ │ │ │ │ │ ├── Union.cs
│ │ │ │ │ │ │ ├── Union.cs.meta
│ │ │ │ │ │ │ ├── UniTask.Linq.asmdef
│ │ │ │ │ │ │ ├── UniTask.Linq.asmdef.meta
│ │ │ │ │ │ │ ├── UnityExtensions
│ │ │ │ │ │ │ │ ├── EveryUpdate.cs
│ │ │ │ │ │ │ │ ├── EveryUpdate.cs.meta
│ │ │ │ │ │ │ │ ├── EveryValueChanged.cs
│ │ │ │ │ │ │ │ ├── EveryValueChanged.cs.meta
│ │ │ │ │ │ │ │ ├── Timer.cs
│ │ │ │ │ │ │ │ └── Timer.cs.meta
│ │ │ │ │ │ │ ├── UnityExtensions.meta
│ │ │ │ │ │ │ ├── Where.cs
│ │ │ │ │ │ │ ├── Where.cs.meta
│ │ │ │ │ │ │ ├── Zip.cs
│ │ │ │ │ │ │ └── Zip.cs.meta
│ │ │ │ │ │ ├── Linq.meta
│ │ │ │ │ │ ├── MoveNextSource.cs
│ │ │ │ │ │ ├── MoveNextSource.cs.meta
│ │ │ │ │ │ ├── PlayerLoopHelper.cs
│ │ │ │ │ │ ├── PlayerLoopHelper.cs.meta
│ │ │ │ │ │ ├── PlayerLoopTimer.cs
│ │ │ │ │ │ ├── PlayerLoopTimer.cs.meta
│ │ │ │ │ │ ├── Progress.cs
│ │ │ │ │ │ ├── Progress.cs.meta
│ │ │ │ │ │ ├── TaskPool.cs
│ │ │ │ │ │ ├── TaskPool.cs.meta
│ │ │ │ │ │ ├── TimeoutController.cs
│ │ │ │ │ │ ├── TimeoutController.cs.meta
│ │ │ │ │ │ ├── TriggerEvent.cs
│ │ │ │ │ │ ├── TriggerEvent.cs.meta
│ │ │ │ │ │ ├── Triggers
│ │ │ │ │ │ │ ├── AsyncAwakeTrigger.cs
│ │ │ │ │ │ │ ├── AsyncAwakeTrigger.cs.meta
│ │ │ │ │ │ │ ├── AsyncDestroyTrigger.cs
│ │ │ │ │ │ │ ├── AsyncDestroyTrigger.cs.meta
│ │ │ │ │ │ │ ├── AsyncStartTrigger.cs
│ │ │ │ │ │ │ ├── AsyncStartTrigger.cs.meta
│ │ │ │ │ │ │ ├── AsyncTriggerBase.cs
│ │ │ │ │ │ │ ├── AsyncTriggerBase.cs.meta
│ │ │ │ │ │ │ ├── AsyncTriggerExtensions.cs
│ │ │ │ │ │ │ ├── AsyncTriggerExtensions.cs.meta
│ │ │ │ │ │ │ ├── MonoBehaviourMessagesTriggers.cs
│ │ │ │ │ │ │ ├── MonoBehaviourMessagesTriggers.cs.meta
│ │ │ │ │ │ │ ├── MonoBehaviourMessagesTriggers.tt
│ │ │ │ │ │ │ └── MonoBehaviourMessagesTriggers.tt.meta
│ │ │ │ │ │ ├── Triggers.meta
│ │ │ │ │ │ ├── UniTask.asmdef
│ │ │ │ │ │ ├── UniTask.asmdef.meta
│ │ │ │ │ │ ├── UniTask.AsValueTask.cs
│ │ │ │ │ │ ├── UniTask.AsValueTask.cs.meta
│ │ │ │ │ │ ├── UniTask.Bridge.cs
│ │ │ │ │ │ ├── UniTask.Bridge.cs.meta
│ │ │ │ │ │ ├── UniTaskCompletionSource.cs
│ │ │ │ │ │ ├── UniTaskCompletionSource.cs.meta
│ │ │ │ │ │ ├── UniTask.cs
│ │ │ │ │ │ ├── UniTask.cs.meta
│ │ │ │ │ │ ├── UniTask.Delay.cs
│ │ │ │ │ │ ├── UniTask.Delay.cs.meta
│ │ │ │ │ │ ├── UniTaskExtensions.cs
│ │ │ │ │ │ ├── UniTaskExtensions.cs.meta
│ │ │ │ │ │ ├── UniTaskExtensions.Shorthand.cs
│ │ │ │ │ │ ├── UniTaskExtensions.Shorthand.cs.meta
│ │ │ │ │ │ ├── UniTaskExtensions.Shorthand.tt
│ │ │ │ │ │ ├── UniTaskExtensions.Shorthand.tt.meta
│ │ │ │ │ │ ├── UniTask.Factory.cs
│ │ │ │ │ │ ├── UniTask.Factory.cs.meta
│ │ │ │ │ │ ├── UniTaskObservableExtensions.cs
│ │ │ │ │ │ ├── UniTaskObservableExtensions.cs.meta
│ │ │ │ │ │ ├── UniTask.Run.cs
│ │ │ │ │ │ ├── UniTask.Run.cs.meta
│ │ │ │ │ │ ├── UniTaskScheduler.cs
│ │ │ │ │ │ ├── UniTaskScheduler.cs.meta
│ │ │ │ │ │ ├── UniTaskSynchronizationContext.cs
│ │ │ │ │ │ ├── UniTaskSynchronizationContext.cs.meta
│ │ │ │ │ │ ├── UniTask.Threading.cs
│ │ │ │ │ │ ├── UniTask.Threading.cs.meta
│ │ │ │ │ │ ├── UniTaskVoid.cs
│ │ │ │ │ │ ├── UniTaskVoid.cs.meta
│ │ │ │ │ │ ├── UniTask.WaitUntil.cs
│ │ │ │ │ │ ├── UniTask.WaitUntil.cs.meta
│ │ │ │ │ │ ├── UniTask.WhenAll.cs
│ │ │ │ │ │ ├── UniTask.WhenAll.cs.meta
│ │ │ │ │ │ ├── UniTask.WhenAll.Generated.cs
│ │ │ │ │ │ ├── UniTask.WhenAll.Generated.cs.meta
│ │ │ │ │ │ ├── UniTask.WhenAll.Generated.tt
│ │ │ │ │ │ ├── UniTask.WhenAll.Generated.tt.meta
│ │ │ │ │ │ ├── UniTask.WhenAny.cs
│ │ │ │ │ │ ├── UniTask.WhenAny.cs.meta
│ │ │ │ │ │ ├── UniTask.WhenAny.Generated.cs
│ │ │ │ │ │ ├── UniTask.WhenAny.Generated.cs.meta
│ │ │ │ │ │ ├── UniTask.WhenAny.Generated.tt
│ │ │ │ │ │ ├── UniTask.WhenAny.Generated.tt.meta
│ │ │ │ │ │ ├── UnityAsyncExtensions.AssetBundleRequestAllAssets.cs
│ │ │ │ │ │ ├── UnityAsyncExtensions.AssetBundleRequestAllAssets.cs.meta
│ │ │ │ │ │ ├── UnityAsyncExtensions.AsyncGPUReadback.cs
│ │ │ │ │ │ ├── UnityAsyncExtensions.AsyncGPUReadback.cs.meta
│ │ │ │ │ │ ├── UnityAsyncExtensions.cs
│ │ │ │ │ │ ├── UnityAsyncExtensions.cs.meta
│ │ │ │ │ │ ├── UnityAsyncExtensions.Jobs.cs
│ │ │ │ │ │ ├── UnityAsyncExtensions.Jobs.cs.meta
│ │ │ │ │ │ ├── UnityAsyncExtensions.MonoBehaviour.cs
│ │ │ │ │ │ ├── UnityAsyncExtensions.MonoBehaviour.cs.meta
│ │ │ │ │ │ ├── UnityAsyncExtensions.tt
│ │ │ │ │ │ ├── UnityAsyncExtensions.tt.meta
│ │ │ │ │ │ ├── UnityAsyncExtensions.uGUI.cs
│ │ │ │ │ │ ├── UnityAsyncExtensions.uGUI.cs.meta
│ │ │ │ │ │ ├── UnityAwaitableExtensions.cs
│ │ │ │ │ │ ├── UnityAwaitableExtensions.cs.meta
│ │ │ │ │ │ ├── UnityBindingExtensions.cs
│ │ │ │ │ │ ├── UnityBindingExtensions.cs.meta
│ │ │ │ │ │ ├── UnityWebRequestException.cs
│ │ │ │ │ │ └── UnityWebRequestException.cs.meta
│ │ │ │ │ └── Runtime.meta
│ │ │ │ └── UniTask.meta
│ │ │ ├── Plugins.meta
│ │ │ ├── RuntimeUnitTestToolkit
│ │ │ │ ├── Editor
│ │ │ │ │ ├── HierarchyTreeBuilder.cs
│ │ │ │ │ ├── HierarchyTreeBuilder.cs.meta
│ │ │ │ │ ├── UnitTestBuilder.cs
│ │ │ │ │ ├── UnitTestBuilder.cs.meta
│ │ │ │ │ ├── UnitTestBuilder.MenuItems.cs
│ │ │ │ │ └── UnitTestBuilder.MenuItems.cs.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── package.json
│ │ │ │ ├── package.json.meta
│ │ │ │ ├── RuntimeUnitTestToolkit.asmdef
│ │ │ │ ├── RuntimeUnitTestToolkit.asmdef.meta
│ │ │ │ ├── UnitTestRunner.cs
│ │ │ │ └── UnitTestRunner.cs.meta
│ │ │ ├── RuntimeUnitTestToolkit.meta
│ │ │ ├── Scenes
│ │ │ │ ├── EditorTest1.cs
│ │ │ │ ├── EditorTest1.cs.meta
│ │ │ │ ├── ExceptionExamples.cs
│ │ │ │ ├── ExceptionExamples.cs.meta
│ │ │ │ ├── ExceptionExamples.unity
│ │ │ │ ├── ExceptionExamples.unity.meta
│ │ │ │ ├── MiddlewareSample.cs
│ │ │ │ ├── MiddlewareSample.cs.meta
│ │ │ │ ├── SandboxMain.cs
│ │ │ │ ├── SandboxMain.cs.meta
│ │ │ │ ├── SandboxMain.unity
│ │ │ │ └── SandboxMain.unity.meta
│ │ │ ├── Scenes.meta
│ │ │ ├── StreamingAssets
│ │ │ │ ├── test.txt
│ │ │ │ └── test.txt.meta
│ │ │ ├── StreamingAssets.meta
│ │ │ ├── TempAsm
│ │ │ │ ├── FooMonoBehaviour.cs
│ │ │ │ ├── FooMonoBehaviour.cs.meta
│ │ │ │ ├── TempAsm.asmdef
│ │ │ │ └── TempAsm.asmdef.meta
│ │ │ ├── TempAsm.meta
│ │ │ ├── Tests
│ │ │ │ ├── AsyncOperationTest.cs
│ │ │ │ ├── AsyncOperationTest.cs.meta
│ │ │ │ ├── AsyncTest.cs
│ │ │ │ ├── AsyncTest.cs.meta
│ │ │ │ ├── CachelikeTest.cs
│ │ │ │ ├── CachelikeTest.cs.meta
│ │ │ │ ├── CoroutineToUniTaskTest.cs
│ │ │ │ ├── CoroutineToUniTaskTest.cs.meta
│ │ │ │ ├── DelayTest.cs
│ │ │ │ ├── DelayTest.cs.meta
│ │ │ │ ├── Editor
│ │ │ │ │ ├── AsyncTestEditor.cs
│ │ │ │ │ ├── AsyncTestEditor.cs.meta
│ │ │ │ │ ├── RunTestEditor.cs
│ │ │ │ │ ├── RunTestEditor.cs.meta
│ │ │ │ │ ├── UniTask.Tests.Editor.asmdef
│ │ │ │ │ ├── UniTask.Tests.Editor.asmdef.meta
│ │ │ │ │ ├── WhenAnyTestEditor.cs
│ │ │ │ │ └── WhenAnyTestEditor.cs.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── GenericsWhenAllAny.cs
│ │ │ │ ├── GenericsWhenAllAny.cs.meta
│ │ │ │ ├── PlayerLoopTimerTest.cs
│ │ │ │ ├── PlayerLoopTimerTest.cs.meta
│ │ │ │ ├── Preserve.cs
│ │ │ │ ├── Preserve.cs.meta
│ │ │ │ ├── Resources
│ │ │ │ │ ├── sample_texture.png
│ │ │ │ │ └── sample_texture.png.meta
│ │ │ │ ├── Resources.meta
│ │ │ │ ├── RunTest.cs
│ │ │ │ ├── RunTest.cs.meta
│ │ │ │ ├── Shims.cs
│ │ │ │ ├── Shims.cs.meta
│ │ │ │ ├── UniTask.Tests.asmdef
│ │ │ │ ├── UniTask.Tests.asmdef.meta
│ │ │ │ ├── WhenAnyTest.cs
│ │ │ │ └── WhenAnyTest.cs.meta
│ │ │ └── Tests.meta
│ │ ├── ProjectSettings
│ │ │ ├── AudioManager.asset
│ │ │ ├── ClusterInputManager.asset
│ │ │ ├── DynamicsManager.asset
│ │ │ ├── EditorBuildSettings.asset
│ │ │ ├── EditorSettings.asset
│ │ │ ├── GraphicsSettings.asset
│ │ │ ├── InputManager.asset
│ │ │ ├── NavMeshAreas.asset
│ │ │ ├── NetworkManager.asset
│ │ │ ├── PackageManagerSettings.asset
│ │ │ ├── Physics2DSettings.asset
│ │ │ ├── PresetManager.asset
│ │ │ ├── ProjectSettings.asset
│ │ │ ├── ProjectVersion.txt
│ │ │ ├── QualitySettings.asset
│ │ │ ├── TagManager.asset
│ │ │ ├── TimeManager.asset
│ │ │ ├── UnityConnectSettings.asset
│ │ │ ├── VersionControlSettings.asset
│ │ │ ├── VFXManager.asset
│ │ │ └── XRSettings.asset
│ │ └── UserSettings
│ │ └── EditorUserSettings.asset
│ ├── UniTask.Analyzer
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── UniTaskAnalyzer.cs
│ │ └── UniTask.Analyzer.csproj
│ ├── UniTask.NetCore
│ │ ├── Icon.png
│ │ ├── NetCore
│ │ │ ├── AsyncEnumerableExtensions.cs
│ │ │ ├── UniTask.Delay.cs
│ │ │ ├── UniTask.Run.cs
│ │ │ └── UniTask.Yield.cs
│ │ ├── opensource.snk
│ │ └── UniTask.NetCore.csproj
│ ├── UniTask.NetCoreSandbox
│ │ ├── Program.cs
│ │ └── UniTask.NetCoreSandbox.csproj
│ └── UniTask.NetCoreTests
│ ├── AsyncLazyTest.cs
│ ├── AsyncReactivePropertyTest.cs
│ ├── CancellationTokenTest.cs
│ ├── ChannelTest.cs
│ ├── CompletionSourceTest.cs
│ ├── DeferTest.cs
│ ├── Linq
│ │ ├── Aggregate.cs
│ │ ├── AllAny.cs
│ │ ├── Concat.cs
│ │ ├── Convert.cs
│ │ ├── CreateTest.cs
│ │ ├── _Exception.cs
│ │ ├── Factory.cs
│ │ ├── Filtering.cs
│ │ ├── FirstLast.cs
│ │ ├── Joins.cs
│ │ ├── Merge.cs
│ │ ├── Paging.cs
│ │ ├── Projection.cs
│ │ ├── PulbishTest.cs
│ │ ├── QueueTest.cs
│ │ ├── Sets.cs
│ │ ├── Sort.cs
│ │ └── TakeInfinityTest.cs
│ ├── TaskBuilderCases.cs
│ ├── TaskExtensionsTest.cs
│ ├── TriggerEventTest.cs
│ ├── UniTaskCompletionSourceTest.cs
│ ├── UniTask.NetCoreTests.csproj
│ └── WithCancellationTest.cs
└── UniTask.NetCore.sln
37 directories, 503 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论