コード例 #1
0
    // load raw file
    public static byte[] LoadRaw(string relativePath)
    {
#if ASSETBUNDLE
        if (dependence_ == null)
        {
            LoadDependence();
            // preload bundles
            LoadDefault();
        }
        return(AutherFile.GetData(relativePath));
#else
        string path = UIPathManager.GetStreamPath() + relativePath;
        if (File.Exists(path))
        {
            FileStream fs     = File.OpenRead(path);
            int        length = (int)fs.Length;
            byte[]     data   = new byte[length];
            fs.Read(data, 0, length);
            fs.Close();
            return(data);
        }
        else
        {
            return(null);
        }
#endif
    }
コード例 #2
0
    // Unload bundles and close Auther file
    public static void Close()
    {
#if ASSETBUNDLE
        UnloadBundles(true);
        main_ = null;

        if (scripts_ != null)
        {
            scripts_.Unload(true);
            scripts_ = null;
        }

        dependence_ = null;

        if (dependence_bundle_ != null)
        {
            dependence_bundle_.Unload(true);
            dependence_bundle_ = null;
        }

        if (asset_dependence_ != null)
        {
            asset_dependence_.Clear();
        }
        AutherFile.LKFile_UnInit();
#endif
    }
コード例 #3
0
    public static void InitStreamingAssetsPath(string path)
    {
#if ASSETBUNDLE
        data_path_ = path;
        AutherFile.LKFile_InitOnlyRead(data_path_);
#endif
    }
コード例 #4
0
    public static void InitData()
    {
#if ASSETBUNDLE
        InitPath();

        if (AutherFile.LKFile_Init(data_path_) == false)
        {
            throw new System.Exception("data file do not exist");
        }
#endif
    }
コード例 #5
0
    public void ExcuteUnzip(string zipPath, string destPath)
    {
        int    UpdateRegisterClassStr = AutherFile.GetStringHash("UpdateUI/UpdateRegisterClass.txt");
        int    UpdateConfigStr        = AutherFile.GetStringHash("Utils/UpdateConfig.txt");
        int    UpdateControllerStr    = AutherFile.GetStringHash("Utils/UpdateController.txt");
        Thread thread = new Thread(delegate()
        {
            try
            {
                unZipIng        = true;
                ZipFile z       = new ZipFile(zipPath);
                long unZipCount = z.Count;
                z.Close();
                ZipInputStream zip = new ZipInputStream(File.OpenRead(zipPath));
                ZipEntry theEntry;
                int curUnzipCount = 0;
                while ((theEntry = zip.GetNextEntry()) != null)
                {
                    int theEntryName = int.Parse(theEntry.Name);
                    if (theEntry.IsFile)
                    {
                        byte[] bytesBuffer = new byte[theEntry.Size];
                        int i = zip.Read(bytesBuffer, 0, bytesBuffer.Length);
                        AutherFile.PutData(theEntryName, bytesBuffer);
                        if (theEntryName.Equals(UpdateRegisterClassStr) || theEntryName.Equals(UpdateConfigStr) ||
                            theEntryName.Equals(UpdateControllerStr))
                        {
                            existsUpdateLua = true;
                        }
                        Debug.Log("PutData " + theEntryName);
                    }
                    curUnzipCount++;
                    progress = (float)curUnzipCount / unZipCount;
                }
                zip.Close();
                zip.Dispose();
                unZipSuccess = true;
                unZipIng     = false;
            }
            catch (Exception e)
            {
                isError = true;
                Debug.Log(e.Message);
            }
        });

        thread.Start();
    }
コード例 #6
0
    public static AssetBundleCreateRequest LoadBundleAsync(string name)
    {
#if ASSETBUNDLE
        int offset = AutherFile.LKFile_GetDataOffset(name);

        if (offset == -1)
        {
            Debug.LogError(name + " not exsit");
            return(null);
        }
        else
        {
            AssetBundleCreateRequest request = AssetBundle.LoadFromFileAsync(data_path_ + "/data", 0, (ulong)offset);
            return(request);
        }
#else
        return(null);
#endif
    }
コード例 #7
0
    private static AssetBundle LoadBundle(string name)
    {
#if ASSETBUNDLE
        int offset = AutherFile.LKFile_GetDataOffset(name);

        if (offset == -1)
        {
            Debug.LogError(name + " not exsit");
            return(null);
        }
        else
        {
            AssetBundle ab = AssetBundle.LoadFromFile(data_path_ + "/data", 0, (ulong)offset);
#if DEBUG
            ab.name = name;
#endif
            return(ab);
        }
#else
        return(null);
#endif
    }
コード例 #8
0
    private static void LoadDependence()
    {
#if ASSETBUNDLE
        dependence_bundle_ = LoadBundle("assetbundles");
        dependence_        = dependence_bundle_.LoadAsset <AssetBundleManifest>("assetbundlemanifest");

        byte[]       dependency = AutherFile.GetData("asset_dependency");
        MemoryStream se         = new MemoryStream(dependency);
        StreamReader sr         = new StreamReader(se);

        string[] list;
        string   assetBundleName = string.Empty;
        string   s = sr.ReadLine();
        while (s != null)
        {
            if (s[0] != '\t')
            {
                assetBundleName = s;
            }
            else
            {
                list = s.Substring(1).Split('|');  //assetName|ext
                if (list.Length == 2)
                {
                    AssetNameNode asset_node = new AssetNameNode();
                    asset_node.name_        = list[0] + list[1];
                    asset_node.bundle_name_ = assetBundleName;
                    asset_dependence_.Add(list[0], asset_node);
                }
            }
            s = sr.ReadLine();
        }
        se.Close();
        sr.Close();
#endif
    }