欢迎使用CSDN-markdown编辑器

来源:互联网 发布:电脑3.0端口怎么设置 编辑:程序博客网 时间:2024/06/01 23:09

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.IO;
public class readpictures : MonoBehaviour
{

private Image image;private string loadpath = "H:/projects/test/Assets/StreamingAssets/Desert.jpg";//IO方法加载的路径string picpathwww = "Desert.jpg";//WWW的加载路径void Start(){    image = this.GetComponent<Image>();    //两种不同  的加载方法    LoadByIO();//这个方法加载速度快    // LoadByWWW();//此方法加载速度慢}/// <summary>/// 以IO方式进行加载/// </summary>private void LoadByIO(){    double startTime = (double)Time.time;    //创建文件读取流    FileStream fileStream = new FileStream(loadpath, FileMode.Open, FileAccess.Read);    fileStream.Seek(0, SeekOrigin.Begin);    //创建文件长度缓冲区    byte[] bytes = new byte[fileStream.Length];    //读取文件    fileStream.Read(bytes, 0, (int)fileStream.Length);    //释放文件读取流    fileStream.Close();    fileStream.Dispose();    fileStream = null;    //创建Texture    int width = 300;    int height = 372;    Texture2D texture = new Texture2D(width, height);    texture.LoadImage(bytes);    //创建Sprite--把Texture转成sprite    Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));    image.sprite = sprite;    startTime = (double)Time.time - startTime;    Debug.Log("IO加载用时:" + startTime);}/// <summary>/// 以WWW方式进行加载/// </summary>private void LoadByWWW(){    StartCoroutine(Load());}IEnumerator Load(){    double startTime = (double)Time.time;    //请求WWW    WWW www = new WWW("file://H:/projects/test/Assets/StreamingAssets/" + picpathwww);//只能放URL    yield return www;    if (www != null && string.IsNullOrEmpty(www.error))    {        //获取Texture        Texture2D texture = www.texture;        //创建Sprite        Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));        image.sprite = sprite;        startTime = (double)Time.time - startTime;        Debug.Log("WWW加载用时:" + startTime);    }}

}

0 0
原创粉丝点击