Skip to content

Commit a51632c

Browse files
committed
fix: add overloads for CancellationToken
1 parent bf945a7 commit a51632c

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Factory.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,42 @@ public static UnityEngine.Events.UnityAction<T0, T1, T2, T3> UnityAction<T0, T1,
220220
return (arg0, arg1, arg2, arg3) => asyncAction(arg0, arg1, arg2, arg3).Forget();
221221
}
222222

223+
// <summary>
224+
/// Create async void(UniTaskVoid) UnityAction.
225+
/// For example: onClick.AddListener(UniTask.UnityAction(async (T arg, CancellationToken cancellationToken) => { /* */ } ))
226+
/// </summary>
227+
public static UnityEngine.Events.UnityAction<T> UnityAction<T>(Func<T, CancellationToken, UniTaskVoid> asyncAction, CancellationToken cancellationToken)
228+
{
229+
return (arg) => asyncAction(arg, cancellationToken).Forget();
230+
}
231+
232+
/// <summary>
233+
/// Create async void(UniTaskVoid) UnityAction.
234+
/// For example: onClick.AddListener(UniTask.UnityAction(async (T0 arg0, T1 arg1, CancellationToken cancellationToken) => { /* */ } ))
235+
/// </summary>
236+
public static UnityEngine.Events.UnityAction<T0, T1> UnityAction<T0, T1>(Func<T0, T1, CancellationToken, UniTaskVoid> asyncAction, CancellationToken cancellationToken)
237+
{
238+
return (arg0, arg1) => asyncAction(arg0, arg1, cancellationToken).Forget();
239+
}
240+
241+
/// <summary>
242+
/// Create async void(UniTaskVoid) UnityAction.
243+
/// For example: onClick.AddListener(UniTask.UnityAction(async (T0 arg0, T1 arg1, T2 arg2, CancellationToken cancellationToken) => { /* */ } ))
244+
/// </summary>
245+
public static UnityEngine.Events.UnityAction<T0, T1, T2> UnityAction<T0, T1, T2>(Func<T0, T1, T2, CancellationToken, UniTaskVoid> asyncAction, CancellationToken cancellationToken)
246+
{
247+
return (arg0, arg1, arg2) => asyncAction(arg0, arg1, arg2, cancellationToken).Forget();
248+
}
249+
250+
/// <summary>
251+
/// Create async void(UniTaskVoid) UnityAction.
252+
/// For example: onClick.AddListener(UniTask.UnityAction(async (T0 arg0, T1 arg1, T2 arg2, T3 arg3, CancellationToken cancellationToken) => { /* */ } ))
253+
/// </summary>
254+
public static UnityEngine.Events.UnityAction<T0, T1, T2, T3> UnityAction<T0, T1, T2, T3>(Func<T0, T1, T2, T3, CancellationToken, UniTaskVoid> asyncAction, CancellationToken cancellationToken)
255+
{
256+
return (arg0, arg1, arg2, arg3) => asyncAction(arg0, arg1, arg2, arg3, cancellationToken).Forget();
257+
}
258+
223259
#endif
224260

225261
/// <summary>

0 commit comments

Comments
 (0)