Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CreateAssetBundles
- {
- [MenuItem("MyMeny/Build AssetBundless")]
- static void BuildAllAssetBundles()
- {
- BuildPipeline.BuildAssetBundles("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
- }
- }
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.Networking;
- public class LoadAssets : MonoBehaviour
- {
- private string bundleURL = "file://C://Work/Assets/AssetBundles/content/spriites_and_music.unity3d";
- private int version = 0;
- [SerializeField] AudioSource source;
- [SerializeField] SpriteRenderer sRenderer;
- public void OnClikDownload()
- {
- StartCoroutine("DownloadAndCach");
- }
- // асинхронная загрузка и распаковка бандлов:
- IEnumerator DownloadAndCach()
- {
- while (!Caching.ready) // готова ли система к кешированию
- yield return null;
- #pragma warning disable CS0618 // Тип или член устарел
- var www = WWW.LoadFromCacheOrDownload(bundleURL, version);
- #pragma warning restore CS0618 // Тип или член устарел
- yield return www;
- // проверка на наличие ошибок
- if (!string.IsNullOrEmpty(www.error))
- {
- Debug.Log(www.error);
- yield break;
- }
- Debug.Log("Бандл успешно загружен");
- // распаковка бандлов
- var assetBundle = www.assetBundle;
- string musicName = "techno_house_loop.mp3";
- string spriteName = "icon.png";
- var musicRequest = assetBundle.LoadAssetAsync(musicName, typeof(AudioClip));
- yield return musicRequest;
- Debug.Log("музыкальный файл распакован");
- var spriteRequest = assetBundle.LoadAssetAsync(spriteName, typeof(Sprite));
- yield return spriteRequest;
- Debug.Log("файл спрайта распакован");
- // приводим объекты к изначальным типам
- source.clip = musicRequest.asset as AudioClip;
- source.Play();
- sRenderer.sprite = spriteRequest.asset as Sprite;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement