public AssetBundleInfo(string assetbundle, int version, LoadABFlag flag, int[] dependencies) { this.assetbundlename = assetbundle; this.version = version; this.flag = flag; this.dependencies = dependencies; }
public bool Load(string path) { FileStream fs = File.OpenRead(path); StreamReader sr = new StreamReader(fs); _version = readIntValueByKey(sr.ReadLine(), "version"); int bundlescount = readIntValueByKey(sr.ReadLine(), "assetbundles"); for (int i = 0; i < bundlescount; i++) { string bundleline = sr.ReadLine(); if (bundleline == null) { return(loadError(fs, sr, "AssetConfigLoader::Load read bundle failed! need line:" + bundlescount)); } string[] segments = bundleline.Split('|'); if (segments.Length != 5) { return(loadError(fs, sr, "AssetConfigLoader::Load read bundle failed, segments error! in line:" + i)); } int id = safeToInt(segments[0]); string abname = segments[1]; int[] dependencies = safeToInts(segments[2].Split(';')); string sflag = segments[3]; int version = safeToInt(segments[4]); LoadABFlag flag = LoadABFlag.NONE; if (sflag.IndexOf("fixed") >= 0) { flag |= LoadABFlag.FIXED; } if (sflag.IndexOf("immediate") >= 0) { flag |= LoadABFlag.IMMEDIATE; } _assetbundles.Add(id, new AssetBundleInfo(abname, version, flag, dependencies)); } int assetscount = readIntValueByKey(sr.ReadLine(), "assets"); for (int i = 0; i < assetscount; i++) { string assetline = sr.ReadLine(); if (assetline == null) { return(loadError(fs, sr, "AssetConfigLoader::Load read files failed! need line:" + assetscount)); } string[] segments = assetline.Split('|'); if (segments.Length != 2) { return(loadError(fs, sr, "AssetConfigLoader::Load read files failed, segments error! in line:" + i)); } string assetname = segments[0]; int assetbundleid = safeToInt(segments[1]); _assets.Add(assetname, assetbundleid); } sr.Close(); fs.Close(); return(true); }