コード例 #1
0
    IEnumerator createBundleAsset(Asset asset, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback, object callbackData, bool persistent = false, bool loadAsync = false)
    {
        yield return(StartCoroutine(makeBundleCached(asset)));

        WWW bundle = GetBundle(asset);

        if (bundle == null)
        {
            Log.Asset.Print("AssetLoader.createBundleAsset() - bundle is not in cache");
            yield return(null);
        }
        else
        {
            Object target = bundle.assetBundle.Load(asset.Name);
            if (target == null)
            {
                Log.Asset.Print("AssetLoader.createBundleAsset() - load res from bundle error,asset name is:" + asset.Name);
                yield return(null);
            }
            else
            {
                CacheAsset(asset, target);
                if (callback != null)
                {
                    callback(asset.Name, target, callbackData);
                }
            }
        }
    }
コード例 #2
0
 public bool LoadGameObject(string name, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback, object callbackData, bool persistent, bool loadAsync)
 {
     return(this.LoadObject(name, AssetFamily.GameObject, callback, progressCallback, callbackData, persistent, loadAsync));
 }
コード例 #3
0
 public bool LoadGameObject(string name, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback, object callbackData, bool persistent)
 {
     return(this.LoadGameObject(name, callback, progressCallback, callbackData, persistent, false));
 }
コード例 #4
0
 public bool LoadGameObject(string name, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback)
 {
     return(this.LoadGameObject(name, callback, progressCallback, null));
 }
コード例 #5
0
 public bool LoadUIScreen(string screenName, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback, object callbackData)
 {
     return(this.LoadObject(screenName, AssetFamily.Texture, callback, progressCallback, callbackData, false, false));
 }
コード例 #6
0
 public bool LoadUIScreen(string screenName, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback)
 {
     return(this.LoadUIScreen(screenName, callback, progressCallback, null));
 }
コード例 #7
0
 public bool LoadTexture(string textureName, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback)
 {
     return(this.LoadTexture(textureName, callback, progressCallback, null));
 }
コード例 #8
0
 public bool LoadSound(string soundName, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback, object callbackData, bool persistent)
 {
     return(this.LoadObject(soundName, AssetFamily.Config, callback, progressCallback, callbackData, persistent, false));
 }
コード例 #9
0
 public bool LoadSound(string soundName, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback)
 {
     return(this.LoadSound(soundName, callback, progressCallback, null, false));
 }
コード例 #10
0
 public bool LoadConfig(string fileName, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback)
 {
     return(this.LoadConfig(fileName, callback, progressCallback, null, false));
 }
コード例 #11
0
    private bool LoadObject(string assetName, AssetFamily family, AssetLoader.ObjectCallback callback, AssetLoader.ProgressCallback progressCallback, object callbackData, bool persistent = false, bool loadAsync = false)
    {
        if (string.IsNullOrEmpty(assetName))
        {
            Log.Asset.Print("AssetLoader.LoadObject() - name was null or empty");
            return(false);
        }
        Asset  asset  = Asset.Create(assetName, family, persistent, loadAsync, false);
        Object target = getInCache(asset);

        if (target != null)        //got in cache
        {
            if (callback != null)
            {
                callback(asset.Name, target, callbackData);
            }
            return(true);
        }
        else
        {
            if (asset.loadModel() == Asset.LoadModel.FromBundle)
            {
                StartCoroutine(createBundleAsset(asset, callback, progressCallback, callbackData, persistent, loadAsync));
            }
            else if (asset.loadModel() == Asset.LoadModel.FromResources)
            {
                Object obj = Resources.Load(asset.GetPath());
                if (obj == null)
                {
                    Log.Asset.Print("AssetLoader.LoadObject() - load object from Resources was failed ,path is:" + asset.GetPath());
                }
                else
                {
                    CacheAsset(asset, obj);
                    if (callback != null)
                    {
                        callback(asset.Name, obj, callbackData);
                    }
                }
            }
        }
        return(true);
    }