Unity加载本地资源

之前加载本地电脑文件都是通过www加载,但是新版Unity已经不支持这个API了。看了一下提醒,说是让用UnityWebRequest代替。命名空间同样是NetWorking,整理了一下加载常用资源的方式。

1.加载本地文档

 IEnumerator LoadFile()
    {
        UnityWebRequest request = UnityWebRequest.Get(@"E:\UnityProjects\TestFile\TestFile.txt");
        yield return request.SendWebRequest();
        if (request.isHttpError||request.isNetworkError)
        {
            Debug.Log(request.error);
        }
        else
        {
            ShowText.text = request.downloadHandler.text;
        }
    }

downloadhandler.text 返回文本内容。

2.加载音视频图片文件

 IEnumerator LoadFile()
    {
        UnityWebRequest request = UnityWebRequestMultimedia.GetAudioClip(@"E:\UnityProjects\TestFile\TestMusic.ogg", AudioType.OGGVORBIS);
        yield return request.SendWebRequest();
        if (request.isHttpError||request.isNetworkError)
        {
            Debug.Log(request.error);
        }
        else
        {
            AudioClip audio = DownloadHandlerAudioClip.GetContent(request);
            this.GetComponent<AudioSource>().clip = audio;
            GetComponent<AudioSource>().Play();
        }
        
    }

这里测试音频为ogg格式,MP3格式会报错,提示不支持MPEG。

3.加载视频......本来以为DownloadHandlerMovieTexture,还能用,谁知道又过时了,使用VideoPlayer代替。

VideoPlayer超级简单粗暴

可以直接拖工程里面的视频进去,也可以通过传入一个URL链接来加载使用。通过RendTexture 来显示出来

4.加载本地图片

 IEnumerator LoadFile()
    {
        UnityWebRequest request = UnityWebRequestTexture.GetTexture(@"E:\UnityProjects\TestFile\TestImage.jpg");
        yield return request.SendWebRequest();
        if (request.isHttpError || request.isNetworkError)
        {
            Debug.Log(request.error);
        }
        else
        {
            Texture tt = DownloadHandlerTexture.GetContent(request);
            GetComponent<RawImage>().texture = tt;
        }

    }

总体感觉UnityWebRequest 这个类和之前的WWW类是一样的,加载各种资源。

发布了76 篇原创文章 · 获赞 43 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/hnzmdlhc/article/details/89435504