unity加载本地资源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity加载本地资源相关的知识,希望对你有一定的参考价值。

参考技术A 一.本地资源一般就是预制体,图片(jpg,png),音乐等文件。如何动态的加载我们需要的资源呢?有哪些方式。
二.加载本地资源的三种方式。
1.采用Resource.Load方法读取。

2.采用WWW类加载资源。

4.这是一套加载本地资源的架构。

Unity3d-WWW实现图片资源显示以及保存和本地加载

 

 

本文固定连接:http://blog.csdn.net/u013108312/article/details/52712844

WWW实现图片资源显示以及保存和本地加载

using UnityEngine;
using System.Collections;
using System.IO;
using UnityEditor;

enum GetPicType
{
    DownLoad = 0,
    LocalLoad,
}

public class Picture : MonoBehaviour
{
    //这里是本地的ip地址
    string url = "http://127.0.0.1:80000/1.jpg";
    /// <summary>
    /// 网络下载的图片
    /// </summary>
    private Texture2D img = null;
    /// <summary>
    /// 本地图片
    /// </summary>
    private Texture2D img2 = null;
    private bool downloadOK = false;

    void OnGUI()
    {
        if (this.img != null)
            GUI.DrawTexture(new Rect(0, 0, 200, 300), this.img);
        if (this.img2 != null)
            GUI.DrawTexture(new Rect(320, 0, 200, 300), this.img2);
        if (GUI.Button(new Rect(210, 0, 100, 20), "显示网络图片"))
        {
                StartCoroutine(this.DownLoadTexture(this.url, GetPicType.DownLoad));
        }
        if (GUI.Button(new Rect(210, 50, 100, 20), "显示本地图片"))
        {
            if (this.downloadOK)
            {
                StartCoroutine(DownLoadTexture("file://" + Application.streamingAssetsPath + "/1.png", GetPicType.LocalLoad));
            }
            else
            {
                Debug.LogError("没有下载完毕");
            }
        }
    }

    IEnumerator DownLoadTexture(string url, GetPicType getType)
    {
        WWW www = new WWW(url);
        Texture2D tempImage;
        yield return www;
        if (www.isDone && www.error == null)
        {
            switch (getType)
            {
                case GetPicType.DownLoad:
                    {
                        this.img = www.texture;
                        tempImage = this.img;
                        Debug.Log(tempImage.width + "  " + tempImage.height);
                        break;
                    }
                case GetPicType.LocalLoad:
                    this.img2 = www.texture;
                    tempImage = this.img;
                    Debug.Log(tempImage.width + "  " + tempImage.height);
                    break;
                default:
                    tempImage = null;
                    break;
            }
            if (tempImage != null)
            {
                byte[] data = tempImage.EncodeToPNG();
                File.WriteAllBytes(Application.streamingAssetsPath + "/1.png", data);
                this.downloadOK = true;
            }
        }
    }
}

以上是关于unity加载本地资源的主要内容,如果未能解决你的问题,请参考以下文章

Unity 远程加载资源以及本地缓存相关

Unity3d-WWW实现图片资源显示以及保存和本地加载

使用Resources类搭建Unity简单的资源管理工具类

unity 是怎么加载assetbundle

Unity加载场景 异步 清理资源

unityab相同名字加载更新