@@ -81,6 +81,16 @@ public static UniTask Create(Func<UniTask> factory)
81
81
return factory ( ) ;
82
82
}
83
83
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
+
84
94
public static UniTask < T > Create < T > ( Func < UniTask < T > > factory )
85
95
{
86
96
return factory ( ) ;
@@ -137,11 +147,19 @@ public static Action Action(Func<CancellationToken, UniTaskVoid> asyncAction, Ca
137
147
return ( ) => asyncAction ( cancellationToken ) . Forget ( ) ;
138
148
}
139
149
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
+
140
158
#if UNITY_2018_3_OR_NEWER
141
159
142
160
/// <summary>
143
161
/// Create async void(UniTaskVoid) UnityAction.
144
- /// For exampe : onClick.AddListener(UniTask.UnityAction(async () => { /* */ } ))
162
+ /// For example : onClick.AddListener(UniTask.UnityAction(async () => { /* */ } ))
145
163
/// </summary>
146
164
public static UnityEngine . Events . UnityAction UnityAction ( Func < UniTaskVoid > asyncAction )
147
165
{
@@ -150,13 +168,22 @@ public static UnityEngine.Events.UnityAction UnityAction(Func<UniTaskVoid> async
150
168
151
169
/// <summary>
152
170
/// 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()))
154
172
/// </summary>
155
173
public static UnityEngine . Events . UnityAction UnityAction ( Func < CancellationToken , UniTaskVoid > asyncAction , CancellationToken cancellationToken )
156
174
{
157
175
return ( ) => asyncAction ( cancellationToken ) . Forget ( ) ;
158
176
}
159
177
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
+
160
187
#endif
161
188
162
189
/// <summary>
0 commit comments