Unity中文件流和WWW的方式加载图片

来源:互联网 发布:java和hadoop 编辑:程序博客网 时间:2024/05/22 17:19
  private Image image;    private string loadPath = "Assets/StreamingAssets" + "/Desert.png";    string picPathwww = "Desert.png";    void Start()    {        image = this.GetComponent<Image>();        LoadByIO();       // LoadByWWW();    }    private void LoadByIO()    {        double startTime = (double)Time.time;        using (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);            int width = 300;            int height = 372;            Texture2D texture = new Texture2D(width, height);            texture.LoadImage(bytes);            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);        }    }    private void LoadByWWW()    {        StartCoroutine(Load());    }    IEnumerator Load()    {        double startTime = (double)Time.time;        WWW www = new WWW("file://" + Application.streamingAssetsPath + "/Desert.png");        yield return www;        if (www != null && string.IsNullOrEmpty(www.error))        {            Texture2D texture = www.texture;            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("wwww加载用时:" + startTime);        }    }
 结果比较  传统的IO读取方式比较快。
1 1
原创粉丝点击