Beispiel #1
0
 public AssetBundleInfo(string assetbundle, int version, LoadABFlag flag, int[] dependencies)
 {
     this.assetbundlename = assetbundle;
     this.version         = version;
     this.flag            = flag;
     this.dependencies    = dependencies;
 }
Beispiel #2
0
        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);
        }