商业打包第四天

一.加载AB包(根据路径验证CRC码然后加载AB包)

    void TestLoadAB()
    {
        //反序列化获取crc
        string xmlPath = Application.streamingAssetsPath + "/AssetbundleConfig.xml";
        FileStream fs = new FileStream(xmlPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
        XmlSerializer xs = new XmlSerializer(typeof(AssetBundleConfig));
        AssetBundleConfig testSerilize = (AssetBundleConfig)xs.Deserialize(fs);
        fs.Close();
        string path = "Assets/GameData/Ceshi/Attack.prefab";
        uint crc = Crc32.GetCrc32(path);
        ABBase aBBase = null;
        for (int i = 0; i < testSerilize.ABList.Count; i++)
        {
            if (testSerilize.ABList[i].Crc==crc)
            {
                aBBase = testSerilize.ABList[i];
            }
        }
        //加载依赖
        for (int i = 0; i < aBBase.ABDependce.Count; i++)
        {
            AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/" + aBBase.ABDependce[i]);
        }
        //加载ab包
        AssetBundle assetBundle = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/" + aBBase.ABName);
        GameObject gameObject=GameObject.Instantiate(assetBundle.LoadAsset<GameObject>(aBBase.AssetName));
    }

猜你喜欢

转载自blog.csdn.net/qq_36429060/article/details/90047737