Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. public class CreateAssetBundles
  2. {
  3. [MenuItem("MyMeny/Build AssetBundless")]
  4. static void BuildAllAssetBundles()
  5. {
  6. BuildPipeline.BuildAssetBundles("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
  7. }
  8. }
  9.  
  10. using System.Collections;
  11. using System.Collections.Generic;
  12. using UnityEngine;
  13. using UnityEngine.Networking;
  14.  
  15. public class LoadAssets : MonoBehaviour
  16. {
  17. private string bundleURL = "file://C://Work/Assets/AssetBundles/content/spriites_and_music.unity3d";
  18. private int version = 0;
  19. [SerializeField] AudioSource source;
  20. [SerializeField] SpriteRenderer sRenderer;
  21.  
  22. public void OnClikDownload()
  23. {
  24. StartCoroutine("DownloadAndCach");
  25. }
  26.  
  27. // асинхронная загрузка и распаковка бандлов:
  28. IEnumerator DownloadAndCach()
  29. {
  30. while (!Caching.ready) // готова ли система к кешированию
  31. yield return null;
  32.  
  33. #pragma warning disable CS0618 // Тип или член устарел
  34. var www = WWW.LoadFromCacheOrDownload(bundleURL, version);
  35. #pragma warning restore CS0618 // Тип или член устарел
  36. yield return www;
  37.  
  38. // проверка на наличие ошибок
  39. if (!string.IsNullOrEmpty(www.error))
  40. {
  41. Debug.Log(www.error);
  42. yield break;
  43. }
  44.  
  45. Debug.Log("Бандл успешно загружен");
  46.  
  47. // распаковка бандлов
  48. var assetBundle = www.assetBundle;
  49. string musicName = "techno_house_loop.mp3";
  50. string spriteName = "icon.png";
  51.  
  52. var musicRequest = assetBundle.LoadAssetAsync(musicName, typeof(AudioClip));
  53. yield return musicRequest;
  54. Debug.Log("музыкальный файл распакован");
  55.  
  56. var spriteRequest = assetBundle.LoadAssetAsync(spriteName, typeof(Sprite));
  57. yield return spriteRequest;
  58. Debug.Log("файл спрайта распакован");
  59.  
  60. // приводим объекты к изначальным типам
  61. source.clip = musicRequest.asset as AudioClip;
  62. source.Play();
  63.  
  64. sRenderer.sprite = spriteRequest.asset as Sprite;
  65. }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement