@@ -81,6 +81,16 @@ public static UniTask Create(Func<UniTask> factory)
8181 return factory ( ) ;
8282 }
8383
84+ public static UniTask Create ( Func < CancellationToken , UniTask > factory , CancellationToken cancellationToken )
85+ {
86+ return factory ( cancellationToken ) ;
87+ }
88+
89+ public static UniTask Create < T > ( T state , Func < T , UniTask > factory )
90+ {
91+ return factory ( state ) ;
92+ }
93+
8494 public static UniTask < T > Create < T > ( Func < UniTask < T > > factory )
8595 {
8696 return factory ( ) ;
@@ -137,11 +147,19 @@ public static Action Action(Func<CancellationToken, UniTaskVoid> asyncAction, Ca
137147 return ( ) => asyncAction ( cancellationToken ) . Forget ( ) ;
138148 }
139149
150+ /// <summary>
151+ /// helper of create add UniTaskVoid to delegate.
152+ /// </summary>
153+ public static Action Action < T > ( T state , Func < T , UniTaskVoid > asyncAction )
154+ {
155+ return ( ) => asyncAction ( state ) . Forget ( ) ;
156+ }
157+
140158#if UNITY_2018_3_OR_NEWER
141159
142160 /// <summary>
143161 /// Create async void(UniTaskVoid) UnityAction.
144- /// For exampe : onClick.AddListener(UniTask.UnityAction(async () => { /* */ } ))
162+ /// For example : onClick.AddListener(UniTask.UnityAction(async () => { /* */ } ))
145163 /// </summary>
146164 public static UnityEngine . Events . UnityAction UnityAction ( Func < UniTaskVoid > asyncAction )
147165 {
@@ -150,13 +168,22 @@ public static UnityEngine.Events.UnityAction UnityAction(Func<UniTaskVoid> async
150168
151169 /// <summary>
152170 /// Create async void(UniTaskVoid) UnityAction.
153- /// For exampe : onClick.AddListener(UniTask.UnityAction(FooAsync, this.GetCancellationTokenOnDestroy()))
171+ /// For example : onClick.AddListener(UniTask.UnityAction(FooAsync, this.GetCancellationTokenOnDestroy()))
154172 /// </summary>
155173 public static UnityEngine . Events . UnityAction UnityAction ( Func < CancellationToken , UniTaskVoid > asyncAction , CancellationToken cancellationToken )
156174 {
157175 return ( ) => asyncAction ( cancellationToken ) . Forget ( ) ;
158176 }
159177
178+ /// <summary>
179+ /// Create async void(UniTaskVoid) UnityAction.
180+ /// For example: onClick.AddListener(UniTask.UnityAction(FooAsync, Argument))
181+ /// </summary>
182+ public static UnityEngine . Events . UnityAction UnityAction < T > ( T state , Func < T , UniTaskVoid > asyncAction )
183+ {
184+ return ( ) => asyncAction ( state ) . Forget ( ) ;
185+ }
186+
160187#endif
161188
162189 /// <summary>
0 commit comments