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类是一样的,加载各种资源。

原文链接:https://blog.csdn.net/hnzmdlhc/article/details/89435504?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165277103516782390540614%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165277103516782390540614&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-14-89435504-null-null.article_score_rank_blog&utm_term=%E8%B5%84%E6%BA%90

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
文明发言,共建和谐米科社区
提交
头像

昵称

取消
昵称表情图片