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

  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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值