1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import { Asset, AssetManager, Prefab, resources, SpriteFrame, TiledMapAsset } from "cc";
- class ResourcesMgr{
- static instance: ResourcesMgr = null;
- private _spriteFrame: Map<string,SpriteFrame> = new Map();
- private _prefab: Map<string, Prefab> = new Map();
- private _tmxAsset: Map<number,TiledMapAsset> = new Map();
- async loadAllRes(path: string, onProgress:((finish: number,total: number, item: AssetManager.RequestItem)=>void) = null){
- //下载resources文件夹下的所有资源
- //异步函数
- const assets: Asset[] = await new Promise<Asset[]>((value, reject)=>{
- resources.loadDir(path, onProgress, (err:Error,assets: Asset[])=>{
- //完成回调 assets就是那些所有资源的数组
- if(err){
- reject(err);
- }
- else{
- value(assets);
- }
-
- })
- })
- //遍历所有资源 分门别类存储到对应的容器中
- for(const asset of assets){
-
- }
- }
- addRes(name: string | string, asset: Asset){
- if(asset instanceof SpriteFrame){
- this._spriteFrame.set(String(name), asset);
- }
- if(asset instanceof Prefab){
- this._prefab.set(String(name), asset);
- }
- if(asset instanceof TiledMapAsset){
- this._tmxAsset.set(Number(name), asset)
- }
- }
- getSpriteFrame(name: string): SpriteFrame{
- return this._spriteFrame.get(name);
- }
- getPrefab(name: string): Prefab{
- return this._prefab.get(name);
- }
- }
- export const resMgr: ResourcesMgr = ResourcesMgr.instance = new ResourcesMgr();
|