This commit is contained in:
CortexCore 2024-07-18 16:04:10 +08:00
parent c80a4a2245
commit ebd23c3537
3 changed files with 60 additions and 0 deletions

View File

@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Cysharp.Threading.Tasks;
namespace BITKit
{
@ -25,5 +27,44 @@ namespace BITKit
await Task.Delay(64);
}
}
public static async UniTask UniTaskFunc(this Func<UniTask> self)
{
List<UniTask> tasks = new List<UniTask>();
foreach (var func in self.CastAsFunc())
{
tasks.Add(func.Invoke());
}
await UniTask.WhenAll(tasks);
}
public static async UniTask UniTaskFunc<T0>(this Func<T0,UniTask> self,T0 arg0)
{
List<UniTask> tasks = new List<UniTask>();
foreach (var func in self.CastAsFunc())
{
tasks.Add(func.Invoke(arg0));
}
await UniTask.WhenAll(tasks);
}
public static async UniTask UniTaskFunc<T0,T1>(this Func<T0,T1,UniTask> self,T0 arg0,T1 arg1)
{
List<UniTask> tasks = new List<UniTask>();
foreach (var func in self.CastAsFunc())
{
tasks.Add(func.Invoke(arg0,arg1));
}
await UniTask.WhenAll(tasks);
}
public static async UniTask UniTaskFunc<T0,T1,T2>(this Func<T0,T1,T2,UniTask> self,T0 arg0,T1 arg1,T2 arg2)
{
List<UniTask> tasks = new List<UniTask>();
foreach (var func in self.CastAsFunc())
{
tasks.Add(func.Invoke(arg0,arg1,arg2));
}
await UniTask.WhenAll(tasks);
}
}
}

8
Src/Core/Wrapper.meta Normal file
View File

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

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 383d8cf0cca0ba445872ba4e8dae85a5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: