@@ -43,25 +43,26 @@ public static UniTask PushNewObjectAsync<T>(this INavigationStack navigationStac
4343
4444 public static UniTask PushNewObjectAsync ( this INavigationStack navigationStack , string key , CancellationToken cancellationToken = default )
4545 {
46- return PushNewObjectAsync ( navigationStack , key , ResourceProvider . DefaultResourceProvider , cancellationToken ) ;
46+ return PushNewObjectAsync ( navigationStack , key , new NavigationContext ( ) , cancellationToken : cancellationToken ) ;
4747 }
4848
49- public static UniTask PushNewObjectAsync ( this INavigationStack navigationStack , string key , NavigationContext context , CancellationToken cancellationToken = default )
50- {
51- return PushNewObjectAsync ( navigationStack , key , ResourceProvider . DefaultResourceProvider , context , cancellationToken ) ;
52- }
53-
54- public static UniTask PushNewObjectAsync ( this INavigationStack navigationStack , string key , IResourceProvider resourceProvider , CancellationToken cancellationToken = default )
55- {
56- var context = new NavigationContext ( ) ;
57- return PushNewObjectAsync ( navigationStack , key , resourceProvider , context , cancellationToken ) ;
58- }
59-
60- public static UniTask PushNewObjectAsync ( this INavigationStack navigationStack , string key , IResourceProvider resourceProvider , NavigationContext context , CancellationToken cancellationToken = default )
49+ public static UniTask PushNewObjectAsync ( this INavigationStack navigationStack , string key , NavigationContext context , IResourceProvider resourceProvider = null , bool loadAsync = true , CancellationToken cancellationToken = default )
6150 {
6251 return navigationStack . PushAsync ( async ( ) =>
6352 {
64- var resource = await resourceProvider . LoadAsync < UnityEngine . Object > ( key , cancellationToken ) ;
53+ resourceProvider ??= ResourceProvider . DefaultResourceProvider ;
54+
55+ UnityEngine . Object resource ;
56+
57+ if ( loadAsync )
58+ {
59+ resource = await resourceProvider . LoadAsync < UnityEngine . Object > ( key , cancellationToken ) ;
60+ }
61+ else
62+ {
63+ cancellationToken . ThrowIfCancellationRequested ( ) ;
64+ resource = resourceProvider . Load < UnityEngine . Object > ( key ) ;
65+ }
6566
6667 var instance = UnityEngine . Object . Instantiate ( resource ) ;
6768 if ( ! TryGetComponent < IPage > ( instance , out var page ) ) throw new Exception ( ) ; // TODO:
0 commit comments