Exemplo n.º 1
0
    public static bool BuildSingleBundle(BundleData bundle)
    {
        UnityEngine.Object assetObj   = null;
        string             outputPath = GenerateOutputBundlePath(bundle.name);

        if (!LoadAssetObjectByAssetPath(bundle.assetPath, out assetObj))
        {
            return(false);
        }

        uint crc       = 0;
        long changTime = DateTime.Now.ToBinary();

        bool succeed = BuildAssetBundle(assetObj, outputPath, out crc);

        BundleBuildState bundleState = BundleManager.GetBuildStateNoNull(bundle.assetPath);

        if (succeed)
        {
            bundleState.crc = crc;
            bundleState.lastDependencies = bundle.depends.ToArray();
            FileInfo info = new FileInfo(outputPath);
            bundleState.size       = info.Length;
            bundleState.changeTime = changTime;
        }
        else
        {
            bundleState.lastDependencies = null;
        }

        //  每次写入,文件过多会有性能问题
        //BMDataAccessor.SaveBundleBuildeStates();
        return(succeed);
    }