IResourceManager.cs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using GameFramework.Download;
  8. using GameFramework.FileSystem;
  9. using GameFramework.ObjectPool;
  10. using System;
  11. using System.Collections.Generic;
  12. namespace GameFramework.Resource
  13. {
  14. /// <summary>
  15. /// 资源管理器接口。
  16. /// </summary>
  17. public interface IResourceManager
  18. {
  19. /// <summary>
  20. /// 获取资源只读区路径。
  21. /// </summary>
  22. string ReadOnlyPath
  23. {
  24. get;
  25. }
  26. /// <summary>
  27. /// 获取资源读写区路径。
  28. /// </summary>
  29. string ReadWritePath
  30. {
  31. get;
  32. }
  33. /// <summary>
  34. /// 获取资源模式。
  35. /// </summary>
  36. ResourceMode ResourceMode
  37. {
  38. get;
  39. }
  40. /// <summary>
  41. /// 获取当前变体。
  42. /// </summary>
  43. string CurrentVariant
  44. {
  45. get;
  46. }
  47. /// <summary>
  48. /// 获取单机模式版本资源列表序列化器。
  49. /// </summary>
  50. PackageVersionListSerializer PackageVersionListSerializer
  51. {
  52. get;
  53. }
  54. /// <summary>
  55. /// 获取可更新模式版本资源列表序列化器。
  56. /// </summary>
  57. UpdatableVersionListSerializer UpdatableVersionListSerializer
  58. {
  59. get;
  60. }
  61. /// <summary>
  62. /// 获取本地只读区版本资源列表序列化器。
  63. /// </summary>
  64. ReadOnlyVersionListSerializer ReadOnlyVersionListSerializer
  65. {
  66. get;
  67. }
  68. /// <summary>
  69. /// 获取本地读写区版本资源列表序列化器。
  70. /// </summary>
  71. ReadWriteVersionListSerializer ReadWriteVersionListSerializer
  72. {
  73. get;
  74. }
  75. /// <summary>
  76. /// 获取资源包版本资源列表序列化器。
  77. /// </summary>
  78. ResourcePackVersionListSerializer ResourcePackVersionListSerializer
  79. {
  80. get;
  81. }
  82. /// <summary>
  83. /// 获取当前资源适用的游戏版本号。
  84. /// </summary>
  85. string ApplicableGameVersion
  86. {
  87. get;
  88. }
  89. /// <summary>
  90. /// 获取当前内部资源版本号。
  91. /// </summary>
  92. int InternalResourceVersion
  93. {
  94. get;
  95. }
  96. /// <summary>
  97. /// 获取资源数量。
  98. /// </summary>
  99. int AssetCount
  100. {
  101. get;
  102. }
  103. /// <summary>
  104. /// 获取资源数量。
  105. /// </summary>
  106. int ResourceCount
  107. {
  108. get;
  109. }
  110. /// <summary>
  111. /// 获取资源组数量。
  112. /// </summary>
  113. int ResourceGroupCount
  114. {
  115. get;
  116. }
  117. /// <summary>
  118. /// 获取或设置资源更新下载地址。
  119. /// </summary>
  120. string UpdatePrefixUri
  121. {
  122. get;
  123. set;
  124. }
  125. /// <summary>
  126. /// 获取或设置每更新多少字节的资源,重新生成一次版本资源列表。
  127. /// </summary>
  128. int GenerateReadWriteVersionListLength
  129. {
  130. get;
  131. set;
  132. }
  133. /// <summary>
  134. /// 获取正在应用的资源包路径。
  135. /// </summary>
  136. string ApplyingResourcePackPath
  137. {
  138. get;
  139. }
  140. /// <summary>
  141. /// 获取等待应用资源数量。
  142. /// </summary>
  143. int ApplyWaitingCount
  144. {
  145. get;
  146. }
  147. /// <summary>
  148. /// 获取或设置资源更新重试次数。
  149. /// </summary>
  150. int UpdateRetryCount
  151. {
  152. get;
  153. set;
  154. }
  155. /// <summary>
  156. /// 获取正在更新的资源组。
  157. /// </summary>
  158. IResourceGroup UpdatingResourceGroup
  159. {
  160. get;
  161. }
  162. /// <summary>
  163. /// 获取等待更新资源数量。
  164. /// </summary>
  165. int UpdateWaitingCount
  166. {
  167. get;
  168. }
  169. /// <summary>
  170. /// 获取使用时下载的等待更新资源数量。
  171. /// </summary>
  172. int UpdateWaitingWhilePlayingCount
  173. {
  174. get;
  175. }
  176. /// <summary>
  177. /// 获取候选更新资源数量。
  178. /// </summary>
  179. int UpdateCandidateCount
  180. {
  181. get;
  182. }
  183. /// <summary>
  184. /// 获取加载资源代理总数量。
  185. /// </summary>
  186. int LoadTotalAgentCount
  187. {
  188. get;
  189. }
  190. /// <summary>
  191. /// 获取可用加载资源代理数量。
  192. /// </summary>
  193. int LoadFreeAgentCount
  194. {
  195. get;
  196. }
  197. /// <summary>
  198. /// 获取工作中加载资源代理数量。
  199. /// </summary>
  200. int LoadWorkingAgentCount
  201. {
  202. get;
  203. }
  204. /// <summary>
  205. /// 获取等待加载资源任务数量。
  206. /// </summary>
  207. int LoadWaitingTaskCount
  208. {
  209. get;
  210. }
  211. /// <summary>
  212. /// 获取或设置资源对象池自动释放可释放对象的间隔秒数。
  213. /// </summary>
  214. float AssetAutoReleaseInterval
  215. {
  216. get;
  217. set;
  218. }
  219. /// <summary>
  220. /// 获取或设置资源对象池的容量。
  221. /// </summary>
  222. int AssetCapacity
  223. {
  224. get;
  225. set;
  226. }
  227. /// <summary>
  228. /// 获取或设置资源对象池对象过期秒数。
  229. /// </summary>
  230. float AssetExpireTime
  231. {
  232. get;
  233. set;
  234. }
  235. /// <summary>
  236. /// 获取或设置资源对象池的优先级。
  237. /// </summary>
  238. int AssetPriority
  239. {
  240. get;
  241. set;
  242. }
  243. /// <summary>
  244. /// 获取或设置资源对象池自动释放可释放对象的间隔秒数。
  245. /// </summary>
  246. float ResourceAutoReleaseInterval
  247. {
  248. get;
  249. set;
  250. }
  251. /// <summary>
  252. /// 获取或设置资源对象池的容量。
  253. /// </summary>
  254. int ResourceCapacity
  255. {
  256. get;
  257. set;
  258. }
  259. /// <summary>
  260. /// 获取或设置资源对象池对象过期秒数。
  261. /// </summary>
  262. float ResourceExpireTime
  263. {
  264. get;
  265. set;
  266. }
  267. /// <summary>
  268. /// 获取或设置资源对象池的优先级。
  269. /// </summary>
  270. int ResourcePriority
  271. {
  272. get;
  273. set;
  274. }
  275. /// <summary>
  276. /// 资源应用成功事件。
  277. /// </summary>
  278. event EventHandler<ResourceApplySuccessEventArgs> ResourceApplySuccess;
  279. /// <summary>
  280. /// 资源应用失败事件。
  281. /// </summary>
  282. event EventHandler<ResourceApplyFailureEventArgs> ResourceApplyFailure;
  283. /// <summary>
  284. /// 资源更新开始事件。
  285. /// </summary>
  286. event EventHandler<ResourceUpdateStartEventArgs> ResourceUpdateStart;
  287. /// <summary>
  288. /// 资源更新改变事件。
  289. /// </summary>
  290. event EventHandler<ResourceUpdateChangedEventArgs> ResourceUpdateChanged;
  291. /// <summary>
  292. /// 资源更新成功事件。
  293. /// </summary>
  294. event EventHandler<ResourceUpdateSuccessEventArgs> ResourceUpdateSuccess;
  295. /// <summary>
  296. /// 资源更新失败事件。
  297. /// </summary>
  298. event EventHandler<ResourceUpdateFailureEventArgs> ResourceUpdateFailure;
  299. /// <summary>
  300. /// 资源更新全部完成事件。
  301. /// </summary>
  302. event EventHandler<ResourceUpdateAllCompleteEventArgs> ResourceUpdateAllComplete;
  303. /// <summary>
  304. /// 设置资源只读区路径。
  305. /// </summary>
  306. /// <param name="readOnlyPath">资源只读区路径。</param>
  307. void SetReadOnlyPath(string readOnlyPath);
  308. /// <summary>
  309. /// 设置资源读写区路径。
  310. /// </summary>
  311. /// <param name="readWritePath">资源读写区路径。</param>
  312. void SetReadWritePath(string readWritePath);
  313. /// <summary>
  314. /// 设置资源模式。
  315. /// </summary>
  316. /// <param name="resourceMode">资源模式。</param>
  317. void SetResourceMode(ResourceMode resourceMode);
  318. /// <summary>
  319. /// 设置当前变体。
  320. /// </summary>
  321. /// <param name="currentVariant">当前变体。</param>
  322. void SetCurrentVariant(string currentVariant);
  323. /// <summary>
  324. /// 设置对象池管理器。
  325. /// </summary>
  326. /// <param name="objectPoolManager">对象池管理器。</param>
  327. void SetObjectPoolManager(IObjectPoolManager objectPoolManager);
  328. /// <summary>
  329. /// 设置文件系统管理器。
  330. /// </summary>
  331. /// <param name="fileSystemManager">文件系统管理器。</param>
  332. void SetFileSystemManager(IFileSystemManager fileSystemManager);
  333. /// <summary>
  334. /// 设置下载管理器。
  335. /// </summary>
  336. /// <param name="downloadManager">下载管理器。</param>
  337. void SetDownloadManager(IDownloadManager downloadManager);
  338. /// <summary>
  339. /// 设置解密资源回调函数。
  340. /// </summary>
  341. /// <param name="decryptResourceCallback">要设置的解密资源回调函数。</param>
  342. /// <remarks>如果不设置,将使用默认的解密资源回调函数。</remarks>
  343. void SetDecryptResourceCallback(DecryptResourceCallback decryptResourceCallback);
  344. /// <summary>
  345. /// 设置资源辅助器。
  346. /// </summary>
  347. /// <param name="resourceHelper">资源辅助器。</param>
  348. void SetResourceHelper(IResourceHelper resourceHelper);
  349. /// <summary>
  350. /// 增加加载资源代理辅助器。
  351. /// </summary>
  352. /// <param name="loadResourceAgentHelper">要增加的加载资源代理辅助器。</param>
  353. void AddLoadResourceAgentHelper(ILoadResourceAgentHelper loadResourceAgentHelper);
  354. /// <summary>
  355. /// 使用单机模式并初始化资源。
  356. /// </summary>
  357. /// <param name="initResourcesCompleteCallback">使用单机模式并初始化资源完成时的回调函数。</param>
  358. void InitResources(InitResourcesCompleteCallback initResourcesCompleteCallback);
  359. /// <summary>
  360. /// 使用可更新模式并检查版本资源列表。
  361. /// </summary>
  362. /// <param name="latestInternalResourceVersion">最新的内部资源版本号。</param>
  363. /// <returns>检查版本资源列表结果。</returns>
  364. CheckVersionListResult CheckVersionList(int latestInternalResourceVersion);
  365. /// <summary>
  366. /// 使用可更新模式并更新版本资源列表。
  367. /// </summary>
  368. /// <param name="versionListLength">版本资源列表大小。</param>
  369. /// <param name="versionListHashCode">版本资源列表哈希值。</param>
  370. /// <param name="versionListCompressedLength">版本资源列表压缩后大小。</param>
  371. /// <param name="versionListCompressedHashCode">版本资源列表压缩后哈希值。</param>
  372. /// <param name="updateVersionListCallbacks">版本资源列表更新回调函数集。</param>
  373. void UpdateVersionList(int versionListLength, int versionListHashCode, int versionListCompressedLength, int versionListCompressedHashCode, UpdateVersionListCallbacks updateVersionListCallbacks);
  374. /// <summary>
  375. /// 使用可更新模式并检查资源。
  376. /// </summary>
  377. /// <param name="ignoreOtherVariant">是否忽略处理其它变体的资源,若不忽略,将会移除其它变体的资源。</param>
  378. /// <param name="checkResourcesCompleteCallback">使用可更新模式并检查资源完成时的回调函数。</param>
  379. void CheckResources(bool ignoreOtherVariant, CheckResourcesCompleteCallback checkResourcesCompleteCallback);
  380. /// <summary>
  381. /// 使用可更新模式并应用资源包资源。
  382. /// </summary>
  383. /// <param name="resourcePackPath">要应用的资源包路径。</param>
  384. /// <param name="applyResourcesCompleteCallback">使用可更新模式并应用资源包资源完成时的回调函数。</param>
  385. void ApplyResources(string resourcePackPath, ApplyResourcesCompleteCallback applyResourcesCompleteCallback);
  386. /// <summary>
  387. /// 使用可更新模式并更新所有资源。
  388. /// </summary>
  389. /// <param name="updateResourcesCompleteCallback">使用可更新模式并更新默认资源组完成时的回调函数。</param>
  390. void UpdateResources(UpdateResourcesCompleteCallback updateResourcesCompleteCallback);
  391. /// <summary>
  392. /// 使用可更新模式并更新指定资源组的资源。
  393. /// </summary>
  394. /// <param name="resourceGroupName">要更新的资源组名称。</param>
  395. /// <param name="updateResourcesCompleteCallback">使用可更新模式并更新指定资源组完成时的回调函数。</param>
  396. void UpdateResources(string resourceGroupName, UpdateResourcesCompleteCallback updateResourcesCompleteCallback);
  397. /// <summary>
  398. /// 停止更新资源。
  399. /// </summary>
  400. void StopUpdateResources();
  401. /// <summary>
  402. /// 校验资源包。
  403. /// </summary>
  404. /// <param name="resourcePackPath">要校验的资源包路径。</param>
  405. /// <returns>是否校验资源包成功。</returns>
  406. bool VerifyResourcePack(string resourcePackPath);
  407. /// <summary>
  408. /// 获取所有加载资源任务的信息。
  409. /// </summary>
  410. /// <returns>所有加载资源任务的信息。</returns>
  411. TaskInfo[] GetAllLoadAssetInfos();
  412. /// <summary>
  413. /// 获取所有加载资源任务的信息。
  414. /// </summary>
  415. /// <param name="results">所有加载资源任务的信息。</param>
  416. void GetAllLoadAssetInfos(List<TaskInfo> results);
  417. /// <summary>
  418. /// 检查资源是否存在。
  419. /// </summary>
  420. /// <param name="assetName">要检查资源的名称。</param>
  421. /// <returns>检查资源是否存在的结果。</returns>
  422. HasAssetResult HasAsset(string assetName);
  423. /// <summary>
  424. /// 异步加载资源。
  425. /// </summary>
  426. /// <param name="assetName">要加载资源的名称。</param>
  427. /// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
  428. void LoadAsset(string assetName, LoadAssetCallbacks loadAssetCallbacks);
  429. /// <summary>
  430. /// 异步加载资源。
  431. /// </summary>
  432. /// <param name="assetName">要加载资源的名称。</param>
  433. /// <param name="assetType">要加载资源的类型。</param>
  434. /// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
  435. void LoadAsset(string assetName, Type assetType, LoadAssetCallbacks loadAssetCallbacks);
  436. /// <summary>
  437. /// 异步加载资源。
  438. /// </summary>
  439. /// <param name="assetName">要加载资源的名称。</param>
  440. /// <param name="priority">加载资源的优先级。</param>
  441. /// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
  442. void LoadAsset(string assetName, int priority, LoadAssetCallbacks loadAssetCallbacks);
  443. /// <summary>
  444. /// 异步加载资源。
  445. /// </summary>
  446. /// <param name="assetName">要加载资源的名称。</param>
  447. /// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
  448. /// <param name="userData">用户自定义数据。</param>
  449. void LoadAsset(string assetName, LoadAssetCallbacks loadAssetCallbacks, object userData);
  450. /// <summary>
  451. /// 异步加载资源。
  452. /// </summary>
  453. /// <param name="assetName">要加载资源的名称。</param>
  454. /// <param name="assetType">要加载资源的类型。</param>
  455. /// <param name="priority">加载资源的优先级。</param>
  456. /// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
  457. void LoadAsset(string assetName, Type assetType, int priority, LoadAssetCallbacks loadAssetCallbacks);
  458. /// <summary>
  459. /// 异步加载资源。
  460. /// </summary>
  461. /// <param name="assetName">要加载资源的名称。</param>
  462. /// <param name="assetType">要加载资源的类型。</param>
  463. /// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
  464. /// <param name="userData">用户自定义数据。</param>
  465. void LoadAsset(string assetName, Type assetType, LoadAssetCallbacks loadAssetCallbacks, object userData);
  466. /// <summary>
  467. /// 异步加载资源。
  468. /// </summary>
  469. /// <param name="assetName">要加载资源的名称。</param>
  470. /// <param name="priority">加载资源的优先级。</param>
  471. /// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
  472. /// <param name="userData">用户自定义数据。</param>
  473. void LoadAsset(string assetName, int priority, LoadAssetCallbacks loadAssetCallbacks, object userData);
  474. /// <summary>
  475. /// 异步加载资源。
  476. /// </summary>
  477. /// <param name="assetName">要加载资源的名称。</param>
  478. /// <param name="assetType">要加载资源的类型。</param>
  479. /// <param name="priority">加载资源的优先级。</param>
  480. /// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
  481. /// <param name="userData">用户自定义数据。</param>
  482. void LoadAsset(string assetName, Type assetType, int priority, LoadAssetCallbacks loadAssetCallbacks, object userData);
  483. /// <summary>
  484. /// 卸载资源。
  485. /// </summary>
  486. /// <param name="asset">要卸载的资源。</param>
  487. void UnloadAsset(object asset);
  488. /// <summary>
  489. /// 异步加载场景。
  490. /// </summary>
  491. /// <param name="sceneAssetName">要加载场景资源的名称。</param>
  492. /// <param name="loadSceneCallbacks">加载场景回调函数集。</param>
  493. void LoadScene(string sceneAssetName, LoadSceneCallbacks loadSceneCallbacks);
  494. /// <summary>
  495. /// 异步加载场景。
  496. /// </summary>
  497. /// <param name="sceneAssetName">要加载场景资源的名称。</param>
  498. /// <param name="priority">加载场景资源的优先级。</param>
  499. /// <param name="loadSceneCallbacks">加载场景回调函数集。</param>
  500. void LoadScene(string sceneAssetName, int priority, LoadSceneCallbacks loadSceneCallbacks);
  501. /// <summary>
  502. /// 异步加载场景。
  503. /// </summary>
  504. /// <param name="sceneAssetName">要加载场景资源的名称。</param>
  505. /// <param name="loadSceneCallbacks">加载场景回调函数集。</param>
  506. /// <param name="userData">用户自定义数据。</param>
  507. void LoadScene(string sceneAssetName, LoadSceneCallbacks loadSceneCallbacks, object userData);
  508. /// <summary>
  509. /// 异步加载场景。
  510. /// </summary>
  511. /// <param name="sceneAssetName">要加载场景资源的名称。</param>
  512. /// <param name="priority">加载场景资源的优先级。</param>
  513. /// <param name="loadSceneCallbacks">加载场景回调函数集。</param>
  514. /// <param name="userData">用户自定义数据。</param>
  515. void LoadScene(string sceneAssetName, int priority, LoadSceneCallbacks loadSceneCallbacks, object userData);
  516. /// <summary>
  517. /// 异步卸载场景。
  518. /// </summary>
  519. /// <param name="sceneAssetName">要卸载场景资源的名称。</param>
  520. /// <param name="unloadSceneCallbacks">卸载场景回调函数集。</param>
  521. void UnloadScene(string sceneAssetName, UnloadSceneCallbacks unloadSceneCallbacks);
  522. /// <summary>
  523. /// 异步卸载场景。
  524. /// </summary>
  525. /// <param name="sceneAssetName">要卸载场景资源的名称。</param>
  526. /// <param name="unloadSceneCallbacks">卸载场景回调函数集。</param>
  527. /// <param name="userData">用户自定义数据。</param>
  528. void UnloadScene(string sceneAssetName, UnloadSceneCallbacks unloadSceneCallbacks, object userData);
  529. /// <summary>
  530. /// 获取二进制资源的实际路径。
  531. /// </summary>
  532. /// <param name="binaryAssetName">要获取实际路径的二进制资源的名称。</param>
  533. /// <returns>二进制资源的实际路径。</returns>
  534. /// <remarks>此方法仅适用于二进制资源存储在磁盘(而非文件系统)中的情况。若二进制资源存储在文件系统中时,返回值将始终为空。</remarks>
  535. string GetBinaryPath(string binaryAssetName);
  536. /// <summary>
  537. /// 获取二进制资源的实际路径。
  538. /// </summary>
  539. /// <param name="binaryAssetName">要获取实际路径的二进制资源的名称。</param>
  540. /// <param name="storageInReadOnly">二进制资源是否存储在只读区中。</param>
  541. /// <param name="storageInFileSystem">二进制资源是否存储在文件系统中。</param>
  542. /// <param name="relativePath">二进制资源或存储二进制资源的文件系统,相对于只读区或者读写区的相对路径。</param>
  543. /// <param name="fileName">若二进制资源存储在文件系统中,则指示二进制资源在文件系统中的名称,否则此参数返回空。</param>
  544. /// <returns>是否获取二进制资源的实际路径成功。</returns>
  545. bool GetBinaryPath(string binaryAssetName, out bool storageInReadOnly, out bool storageInFileSystem, out string relativePath, out string fileName);
  546. /// <summary>
  547. /// 获取二进制资源的长度。
  548. /// </summary>
  549. /// <param name="binaryAssetName">要获取长度的二进制资源的名称。</param>
  550. /// <returns>二进制资源的长度。</returns>
  551. int GetBinaryLength(string binaryAssetName);
  552. /// <summary>
  553. /// 异步加载二进制资源。
  554. /// </summary>
  555. /// <param name="binaryAssetName">要加载二进制资源的名称。</param>
  556. /// <param name="loadBinaryCallbacks">加载二进制资源回调函数集。</param>
  557. void LoadBinary(string binaryAssetName, LoadBinaryCallbacks loadBinaryCallbacks);
  558. /// <summary>
  559. /// 异步加载二进制资源。
  560. /// </summary>
  561. /// <param name="binaryAssetName">要加载二进制资源的名称。</param>
  562. /// <param name="loadBinaryCallbacks">加载二进制资源回调函数集。</param>
  563. /// <param name="userData">用户自定义数据。</param>
  564. void LoadBinary(string binaryAssetName, LoadBinaryCallbacks loadBinaryCallbacks, object userData);
  565. /// <summary>
  566. /// 从文件系统中加载二进制资源。
  567. /// </summary>
  568. /// <param name="binaryAssetName">要加载二进制资源的名称。</param>
  569. /// <returns>存储加载二进制资源的二进制流。</returns>
  570. byte[] LoadBinaryFromFileSystem(string binaryAssetName);
  571. /// <summary>
  572. /// 从文件系统中加载二进制资源。
  573. /// </summary>
  574. /// <param name="binaryAssetName">要加载二进制资源的名称。</param>
  575. /// <param name="buffer">存储加载二进制资源的二进制流。</param>
  576. /// <returns>实际加载了多少字节。</returns>
  577. int LoadBinaryFromFileSystem(string binaryAssetName, byte[] buffer);
  578. /// <summary>
  579. /// 从文件系统中加载二进制资源。
  580. /// </summary>
  581. /// <param name="binaryAssetName">要加载二进制资源的名称。</param>
  582. /// <param name="buffer">存储加载二进制资源的二进制流。</param>
  583. /// <param name="startIndex">存储加载二进制资源的二进制流的起始位置。</param>
  584. /// <returns>实际加载了多少字节。</returns>
  585. int LoadBinaryFromFileSystem(string binaryAssetName, byte[] buffer, int startIndex);
  586. /// <summary>
  587. /// 从文件系统中加载二进制资源。
  588. /// </summary>
  589. /// <param name="binaryAssetName">要加载二进制资源的名称。</param>
  590. /// <param name="buffer">存储加载二进制资源的二进制流。</param>
  591. /// <param name="startIndex">存储加载二进制资源的二进制流的起始位置。</param>
  592. /// <param name="length">存储加载二进制资源的二进制流的长度。</param>
  593. /// <returns>实际加载了多少字节。</returns>
  594. int LoadBinaryFromFileSystem(string binaryAssetName, byte[] buffer, int startIndex, int length);
  595. /// <summary>
  596. /// 从文件系统中加载二进制资源的片段。
  597. /// </summary>
  598. /// <param name="binaryAssetName">要加载片段的二进制资源的名称。</param>
  599. /// <param name="length">要加载片段的长度。</param>
  600. /// <returns>存储加载二进制资源片段内容的二进制流。</returns>
  601. byte[] LoadBinarySegmentFromFileSystem(string binaryAssetName, int length);
  602. /// <summary>
  603. /// 从文件系统中加载二进制资源的片段。
  604. /// </summary>
  605. /// <param name="binaryAssetName">要加载片段的二进制资源的名称。</param>
  606. /// <param name="offset">要加载片段的偏移。</param>
  607. /// <param name="length">要加载片段的长度。</param>
  608. /// <returns>存储加载二进制资源片段内容的二进制流。</returns>
  609. byte[] LoadBinarySegmentFromFileSystem(string binaryAssetName, int offset, int length);
  610. /// <summary>
  611. /// 从文件系统中加载二进制资源的片段。
  612. /// </summary>
  613. /// <param name="binaryAssetName">要加载片段的二进制资源的名称。</param>
  614. /// <param name="buffer">存储加载二进制资源片段内容的二进制流。</param>
  615. /// <returns>实际加载了多少字节。</returns>
  616. int LoadBinarySegmentFromFileSystem(string binaryAssetName, byte[] buffer);
  617. /// <summary>
  618. /// 从文件系统中加载二进制资源的片段。
  619. /// </summary>
  620. /// <param name="binaryAssetName">要加载片段的二进制资源的名称。</param>
  621. /// <param name="buffer">存储加载二进制资源片段内容的二进制流。</param>
  622. /// <param name="length">要加载片段的长度。</param>
  623. /// <returns>实际加载了多少字节。</returns>
  624. int LoadBinarySegmentFromFileSystem(string binaryAssetName, byte[] buffer, int length);
  625. /// <summary>
  626. /// 从文件系统中加载二进制资源的片段。
  627. /// </summary>
  628. /// <param name="binaryAssetName">要加载片段的二进制资源的名称。</param>
  629. /// <param name="buffer">存储加载二进制资源片段内容的二进制流。</param>
  630. /// <param name="startIndex">存储加载二进制资源片段内容的二进制流的起始位置。</param>
  631. /// <param name="length">要加载片段的长度。</param>
  632. /// <returns>实际加载了多少字节。</returns>
  633. int LoadBinarySegmentFromFileSystem(string binaryAssetName, byte[] buffer, int startIndex, int length);
  634. /// <summary>
  635. /// 从文件系统中加载二进制资源的片段。
  636. /// </summary>
  637. /// <param name="binaryAssetName">要加载片段的二进制资源的名称。</param>
  638. /// <param name="offset">要加载片段的偏移。</param>
  639. /// <param name="buffer">存储加载二进制资源片段内容的二进制流。</param>
  640. /// <returns>实际加载了多少字节。</returns>
  641. int LoadBinarySegmentFromFileSystem(string binaryAssetName, int offset, byte[] buffer);
  642. /// <summary>
  643. /// 从文件系统中加载二进制资源的片段。
  644. /// </summary>
  645. /// <param name="binaryAssetName">要加载片段的二进制资源的名称。</param>
  646. /// <param name="offset">要加载片段的偏移。</param>
  647. /// <param name="buffer">存储加载二进制资源片段内容的二进制流。</param>
  648. /// <param name="length">要加载片段的长度。</param>
  649. /// <returns>实际加载了多少字节。</returns>
  650. int LoadBinarySegmentFromFileSystem(string binaryAssetName, int offset, byte[] buffer, int length);
  651. /// <summary>
  652. /// 从文件系统中加载二进制资源的片段。
  653. /// </summary>
  654. /// <param name="binaryAssetName">要加载片段的二进制资源的名称。</param>
  655. /// <param name="offset">要加载片段的偏移。</param>
  656. /// <param name="buffer">存储加载二进制资源片段内容的二进制流。</param>
  657. /// <param name="startIndex">存储加载二进制资源片段内容的二进制流的起始位置。</param>
  658. /// <param name="length">要加载片段的长度。</param>
  659. /// <returns>实际加载了多少字节。</returns>
  660. int LoadBinarySegmentFromFileSystem(string binaryAssetName, int offset, byte[] buffer, int startIndex, int length);
  661. /// <summary>
  662. /// 检查资源组是否存在。
  663. /// </summary>
  664. /// <param name="resourceGroupName">要检查资源组的名称。</param>
  665. /// <returns>资源组是否存在。</returns>
  666. bool HasResourceGroup(string resourceGroupName);
  667. /// <summary>
  668. /// 获取默认资源组。
  669. /// </summary>
  670. /// <returns>默认资源组。</returns>
  671. IResourceGroup GetResourceGroup();
  672. /// <summary>
  673. /// 获取资源组。
  674. /// </summary>
  675. /// <param name="resourceGroupName">要获取的资源组名称。</param>
  676. /// <returns>要获取的资源组。</returns>
  677. IResourceGroup GetResourceGroup(string resourceGroupName);
  678. /// <summary>
  679. /// 获取所有资源组。
  680. /// </summary>
  681. /// <returns>所有资源组。</returns>
  682. IResourceGroup[] GetAllResourceGroups();
  683. /// <summary>
  684. /// 获取所有资源组。
  685. /// </summary>
  686. /// <param name="results">所有资源组。</param>
  687. void GetAllResourceGroups(List<IResourceGroup> results);
  688. /// <summary>
  689. /// 获取资源组集合。
  690. /// </summary>
  691. /// <param name="resourceGroupNames">要获取的资源组名称的集合。</param>
  692. /// <returns>要获取的资源组集合。</returns>
  693. IResourceGroupCollection GetResourceGroupCollection(params string[] resourceGroupNames);
  694. /// <summary>
  695. /// 获取资源组集合。
  696. /// </summary>
  697. /// <param name="resourceGroupNames">要获取的资源组名称的集合。</param>
  698. /// <returns>要获取的资源组集合。</returns>
  699. IResourceGroupCollection GetResourceGroupCollection(List<string> resourceGroupNames);
  700. }
  701. }