Exemple #1
0
        public BundleData GetBundleByName(string bundleName)
        {
            BundleData data = null;

            foreach (PYBundlePriority key in Bundles.Keys)
            {
                data = Bundles[key].Find((bundleData) => bundleData.Name == bundleName);
                if (data != null)
                {
                    return(data);
                }
            }
            return(data);
        }
Exemple #2
0
        public void ReloadBundle(BundleData bundleData)
        {
            foreach (AssetBundle bundle in bundleData.Bundles)
            {
                bundle.Unload(true);
            }

            bundleData.Bundles.Clear();
            Resources.UnloadUnusedAssets();

            foreach (string bundlePath in bundleData.AbsoluteBundlePaths)
            {
                bundleData.Bundles.Add(AssetBundle.LoadFromFile(bundlePath));
            }
        }
Exemple #3
0
        private IEnumerator CreateAssetBundleReference(string bundlePath, PYBundlePriority priority)
        {
            DirectoryInfo dir  = new DirectoryInfo(bundlePath);
            BundleData    data = Bundles[priority].Find((t) => dir.Parent.Name == t.Name);

            if (data == null)
            {
                data = new BundleData(dir.Parent.Name.Split('.')[0]);
                Bundles[priority].Add(data);
            }

            AssetBundleCreateRequest bundleRequest = AssetBundle.LoadFromFileAsync(bundlePath);

            yield return(bundleRequest);

            data.Bundles.Add(bundleRequest.assetBundle);
            data.AbsoluteBundlePaths.Add(bundlePath);

            if (bundleRequest.assetBundle != null)
            {
                // Load PYBundleVersion for this bundleData
                TextAsset versionFile = bundleRequest.assetBundle.LoadAsset <TextAsset>("version");
                if (versionFile == null)
                {
                    Debug.LogWarning(string.Format("PYBUNDLE ({0}): Reading bundle ({1}) version.xml file not found!",
                                                   this.ToString().Replace("PYBundleSystem.", ""), data.Name));
                }
                else
                {
                    data.Version = PYXML.DeserializerFromContent <PYBundleVersion>(versionFile.text);

                    // Debug for unity output file
#if !UNITY_EDITOR
                    Debug.LogWarning(string.Format("PYBUNDLE ({0}): Reading bundle ({1}) version: ({2}) creationDate: ({3}) isReadable/Uptodate: ({4})",
                                                   this.ToString().Replace("PYBundleSystem.", ""), data.Name, data.Version.Version, data.Version.CreationDate, data.Version.IsReadable));
#endif
                }
            }
        }
Exemple #4
0
 public void SetCurrentContent(BundleData bundleData)
 {
     CurrentContentBundles.Clear();
     CurrentContentBundles.Add(bundleData);
 }
Exemple #5
0
 public ContentAsset(BundleData bundleData, T asset)
 {
     BundleData = bundleData;
     Asset      = asset;
 }