@@ -103,18 +103,19 @@ public string LocalPath
103103 #region 构造函数
104104 public ResourceManager ( )
105105 {
106- //自动监听图集请求,并异步加载图集资源
107- SpriteAtlasManager . atlasRequested += ( tag , callback ) => {
108- string assetPath = Asset . AllAssetPaths . Find ( x => x . EndsWith ( $ "{ tag . ToLower ( ) } .spriteatlas") ) ;
109- if ( ! string . IsNullOrEmpty ( assetPath ) )
110- {
111- Asset . LoadAsset < SpriteAtlas > ( assetPath , callback ) ;
112- }
113- else
114- {
115- throw new GameException ( $ "The path to the SpriteAtlas file could not be found. { tag } ") ;
116- }
117- } ;
106+ ////自动监听图集请求,并异步加载图集资源
107+ //SpriteAtlasManager.atlasRequested += (tag, callback) =>
108+ //{
109+ // string assetPath = Resource.Asset.AllAssetPaths.Find(x => x.EndsWith($"{tag.ToLower()}.spriteatlas"));
110+ // if (!string.IsNullOrEmpty(assetPath))
111+ // {
112+ // Resource.Asset.LoadAsset<SpriteAtlas>(assetPath, callback);
113+ // }
114+ // else
115+ // {
116+ // throw new GameException($"The path to the SpriteAtlas file could not be found. {tag}");
117+ // }
118+ //};
118119
119120 //获取事件管理器
120121 _event = GameFrameworkMode . GetModule < EventManager > ( ) ;
@@ -126,12 +127,6 @@ public ResourceManager()
126127 _sceneLoadingEventArgs = new SceneLoadingEventArgs ( ) ;
127128 _sceneLoadedEventArgs = new SceneLoadedEventArgs ( ) ;
128129 _sceneAsyncOperations = new Dictionary < string , AsyncOperation > ( ) ;
129- 130- //BundleResourceHelper
131- GameObject bundleBehaviourHelper = new GameObject ( "AssetBundleBehaviourHelper" ) ;
132- Asset = bundleBehaviourHelper . AddComponent < BundleAssetsHelper > ( ) ;
133- bundleBehaviourHelper . hideFlags = HideFlags . HideAndDontSave ;
134- GameObject . DontDestroyOnLoad ( bundleBehaviourHelper ) ;
135130 }
136131 #endregion
137132
@@ -157,7 +152,34 @@ public override void OnInit()
157152 _remoteUpdatePath = Path . Combine ( _remoteUpdatePath , Utility . GetRuntimePlatformName ( ) ) ;
158153 //资源版本
159154 Version = new ResourceVersion ( _remoteUpdatePath , LocalPath ) ;
160- }
155+ 156+ //选择更新 | 读取本地 | 编辑器
157+ switch ( ResUpdateType )
158+ {
159+ case ResourceUpdateType . None :
160+ break ;
161+ case ResourceUpdateType . Update :
162+ //BundleResourceHelper
163+ GameObject bundleBehaviourHelper = new GameObject ( "AssetBundleBehaviourHelper" ) ;
164+ Asset = bundleBehaviourHelper . AddComponent < BundleAssetsHelper > ( ) ;
165+ bundleBehaviourHelper . hideFlags = HideFlags . HideAndDontSave ;
166+ GameObject . DontDestroyOnLoad ( bundleBehaviourHelper ) ;
167+ break ;
168+ case ResourceUpdateType . Local :
169+ break ;
170+ case ResourceUpdateType . Editor :
171+ #if UNITY_EDITOR
172+ Asset = new EditorAssetsHelper ( ) ;
173+ #else
174+ //如果在非编辑器模式下选择了Editor,使用本地文件
175+ throw new GameException ( "Please select the correct resource type, not ResourceUpdateType.Editor!" ) ;
176+ #endif
177+ break ;
178+ }
179+ 180+ 181+ 182+ }
161183
162184
163185 #region 外部接口
@@ -169,15 +191,34 @@ public void SetResourceHelper(IAssetsHelper resourceHelper)
169191 {
170192 Asset ? . Clear ( ) ;
171193 Asset = resourceHelper ;
172- 173194 }
174195
196+ /// <summary>
197+ /// 图集请求
198+ /// </summary>
199+ /// <param name="tag"></param>
200+ /// <param name="callback"></param>
201+ public void OnAtlasRequested ( string operation , Action < string , Action < SpriteAtlas > > callback )
202+ {
203+ if ( string . IsNullOrEmpty ( operation ) )
204+ {
205+ return ;
206+ }
207+ if ( operation . Equals ( "+" ) )
208+ {
209+ SpriteAtlasManager . atlasRequested += callback ;
210+ }
211+ else if ( operation . Equals ( "-" ) )
212+ {
213+ SpriteAtlasManager . atlasRequested -= callback ;
214+ }
215+ }
175216
176- /// <summary>
177- /// 设置对象池管理器的
178- /// </summary>
179- /// <param name="helper"></param>
180- public void SetGameObjectPoolHelper ( IGameObjectPoolHelper helper )
217+ /// <summary>
218+ /// 设置对象池管理器的
219+ /// </summary>
220+ /// <param name="helper"></param>
221+ public void SetGameObjectPoolHelper ( IGameObjectPoolHelper helper )
181222 {
182223 _gameObjectPoolHelper = helper ;
183224 }
0 commit comments