private static AssetManager.Asset LoadAsset(AssetManager.Bundle bundle, string name, Type type, AssetManager.OnAssetLoaded assetLoaded, AssetManager.LoadAssetDelegate OnLoadAsset) { AssetManager.Asset asset = AssetManager.FindAsset(name); if (asset != null) { if (asset.State == AssetManager.State.Loaded) //已经正确加载,重定向回调 { asset.ClearEvents(); asset.AssetLoaded += assetLoaded; asset.OnLoaded(); return(asset); } AssetManager.StopLoadAsyncAsset(asset); } else { asset = new AssetManager.Asset(); AssetManager.Assets.Add(name, asset); } asset.Name = name; asset.Type = type; asset.Bundle = bundle; asset.ClearEvents(); //如果先请求loadAsset,然后才loadBundle,不管前面的无效请求,只管loadBundle之后的loadAsset asset.AssetLoaded += assetLoaded; return(OnLoadAsset(asset)); }
private static void AssetLoaded(AssetManager.Asset asset) { asset.State = AssetManager.State.Loaded; asset.OnLoaded(); }