55using Cysharp . Threading . Tasks . Linq ;
66using UnityEngine ;
77
8- namespace LD . AI . AsyncFSM
8+ namespace LD . StateMachine
99{
1010 [ Serializable ]
1111 public class AsyncStateMachine < TStateKey > : IDisposable
@@ -261,18 +261,19 @@ async UniTask LogicAsync()
261261
262262 async UniTask UpdateTransitionAsync ( )
263263 {
264- if ( Transitions == null ) return ;
264+ if ( Transitions == null ) return ;
265265 if ( this . Transitions . ContainsKey ( this . CurState . Value ) )
266- {
266+ {
267267 var link = this . Transitions [ CurState . Value ] ;
268268 for ( var index = 0 ; index < link . Callbacks . Count ; index ++ )
269269 {
270270 var callback = link . Callbacks [ index ] ;
271271 var shouldTransition = await callback . ShouldTransition ( ) ;
272272 if ( shouldTransition )
273273 {
274- await UniTask . WaitUntil ( ( ) => currentTask == null ) ;
275- // 현재는 트랜지션이 가능한 상태더라도 현재 state의 task가 종료 되어야만 호출 됨.
274+
275+ await UniTask . WaitUntil ( ( ) => { return currentTask == null ; } ) ;
276+ // 현재는 트랜지션이 가능한 상태더라도 현재 state의 task가 종료 되어야만 호출 됨.
276277 await ChangeStateAsync ( link . To ) ;
277278 }
278279 }
@@ -296,18 +297,17 @@ private async UniTask UpdateState()
296297 private async UniTaskVoid StartUpdateLoopAsync ( CancellationToken token )
297298 {
298299 await foreach ( var _ in UniTaskAsyncEnumerable . EveryUpdate ( ) . WithCancellation ( token ) )
299- {
300-
300+ {
301301 if ( _monoBehaviourObject != null )
302302 {
303303 if ( _monoBehaviourObject . gameObject . activeSelf && _monoBehaviourObject . enabled )
304304 {
305- await LogicAsync ( ) ;
305+ await LogicAsync ( ) . SuppressCancellationThrow ( ) ;
306306 }
307307 }
308308 else
309- {
310- await LogicAsync ( ) ;
309+ {
310+ await LogicAsync ( ) . SuppressCancellationThrow ( ) ;
311311 }
312312 }
313313 }
0 commit comments