UNITY 基础之 实现动态加载网络端、PC端和 ANDROID 端指定路径下的图片的简单方法

这篇具有很好参考价值的文章主要介绍了UNITY 基础之 实现动态加载网络端、PC端和 ANDROID 端指定路径下的图片的简单方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、简单介绍

Unity中的一些基础知识点,便于后期查看学习。

本节介绍,如何动态加载网络上,电脑上或者Android手机上指定路径的图片的简单方式,方法不唯一,仅供参考。

二、实现原理

1、UnityWebRequest 发起网络请求,DownloadHandlerTexture 作为发起下载图片,解析得到图片

2、下载地址不仅支持网络路径,电脑端和Android 手机端等路径也支持

三、注意事项

1、移动端,例如 Android 注意请给读写权限

2、因为要加载网络服务器上的图片,还需要网络开启哈

四、效果预览

unity3d 加载网络图片,unity3d,C#,VR,unity,游戏引擎

unity3d 加载网络图片,unity3d,C#,VR,unity,游戏引擎

五、实现步骤

1、打开Unity,新建工程

unity3d 加载网络图片,unity3d,C#,VR,unity,游戏引擎

2、在场景上布局UI,显示加载的图片

unity3d 加载网络图片,unity3d,C#,VR,unity,游戏引擎

3、新建脚本,编辑代码,把脚本挂载到 UI上,勾选是加载网络图片,还是电脑Android上的图片

unity3d 加载网络图片,unity3d,C#,VR,unity,游戏引擎

4、注意,Android 注意 给读写权限

unity3d 加载网络图片,unity3d,C#,VR,unity,游戏引擎

5、运行效果如上

unity3d 加载网络图片,unity3d,C#,VR,unity,游戏引擎

unity3d 加载网络图片,unity3d,C#,VR,unity,游戏引擎

六、关键代码

 
  1. using System;

  2. using System.Collections;

  3. using System.Collections.Generic;

  4. using UnityEngine;

  5. using UnityEngine.Networking;

  6. using UnityEngine.UI;

  7. public class LoadPicture : MonoBehaviour

  8. {

  9. public bool isLoadNetImage = false;

  10. [SerializeField]

  11. // 网络上的图片,也可以加载

  12. private string url = @"http://a2.att.hudong.com/36/48/19300001357258133412489354717.jpg";

  13. RawImage rawImage;

  14. public string Url { get => url;

  15. set {

  16. url = value;

  17. GetTexture(url, SetTexttureToRawImage);

  18. }文章来源地址https://www.toymoban.com/news/detail-699387.html

  19. }

  20. private void Start()

  21. {

  22. rawImage = GetComponent<RawImage>();

  23. if (isLoadNetImage)

  24. {

  25. // 加载网络服务器的图片

  26. GetTexture(url, SetTexttureToRawImage);

  27. }

  28. else {

  29. #if UNITY_EDITOR

  30. // 加载PC端上的图片

  31. GetTexture(@"D:\Tmp\Images\HappFish.png",

  32. SetTexttureToRawImage);

  33. #else

  34. // 加载Android端的图片

  35. GetTexture(@"file:///storage/emulated/0/tencent/MicroMsg/WeiXin/mmexport1537166579555.jpg",

  36. SetTexttureToRawImage);

  37. #endif

  38. }

  39. }

  40. void SetTexttureToRawImage(Texture texture)

  41. {

  42. if (rawImage ==null)

  43. {

  44. rawImage = GetComponent<RawImage>();

  45. }

  46. rawImage.texture = texture;

  47. }

  48. /// <summary>

  49. /// 请求图片

  50. /// </summary>

  51. /// <param name="url">图片地址,like 'http://www.my-server.com/image.png '</param>

  52. /// <param name="action">请求发起后处理回调结果的委托,处理请求结果的图片</param>

  53. /// <returns></returns>

  54. public void GetTexture(string url, Action<Texture2D> actionResult)

  55. {

  56. StartCoroutine(_GetTexture(url, actionResult));

  57. }

  58. /// <summary>

  59. /// 请求图片

  60. /// </summary>

  61. /// <param name="url">图片地址,like 'http://www.my-server.com/image.png '</param>

  62. /// <param name="action">请求发起后处理回调结果的委托,处理请求结果的图片</param>

  63. /// <returns></returns>

  64. IEnumerator _GetTexture(string url, Action<Texture2D> actionResult)

  65. {

  66. UnityWebRequest uwr = new UnityWebRequest(url);

  67. DownloadHandlerTexture downloadTexture = new DownloadHandlerTexture(true);

  68. uwr.downloadHandler = downloadTexture;

  69. yield return uwr.SendWebRequest();

  70. Texture2D t = null;

  71. if (!(uwr.isNetworkError || uwr.isHttpError))

  72. {

  73. t = downloadTexture.texture;

  74. }

  75. else

  76. {

  77. Debug.Log("下载失败,请检查网络,或者下载地址是否正确 ");

  78. }

  79. if (actionResult != null)

  80. {

  81. actionResult(t);

  82. }

  83. }

  84. }

到了这里,关于UNITY 基础之 实现动态加载网络端、PC端和 ANDROID 端指定路径下的图片的简单方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3d使用Netcode实现Hololens、Android和Pc端通信

    在Unity3d中使用现有的Netcode/Mirror组件实现Hololens、Android和Pc端的三方通信,可以指定一平台为服务器端,其他的两平台多为客户端,不过通常是进行两个平台的通信即可。在这片文章中,可以实现平移、缩放以及旋转的同步 具体步骤如下: 版本:unity2020.3LTS、VS2019 一、配置

    2024年02月09日
    浏览(34)
  • vue项目pc端和移动端适配

    一、样式中根据设计稿确定缩放比例(可以设置全局或者部分页面) 二、监听窗口大小改变,设置根字体大小 created() { // 获取当前设备的宽度,设置rem的根字体大小 let width = window.innerWidth; width = width = 1200 ? 1200 : width; const htmlObj = document.getElementsByTagName(“html”)[0]; htmlObj.sty

    2023年04月09日
    浏览(28)
  • 前端基于PC端和移动端的组件库

             前端组件库 是一种用于构建 Web 应用程序用户界面的工具。它提供了一组可重用的组件,这些组件可以帮助开发者更快地构建出漂亮、功能强大的用户界面。         使用前端组件库有很多好处。首先,它可以提高开发效率,因为组件已经被编写好,并且可以

    2024年04月26日
    浏览(26)
  • 移动APP、WEB端和PC端测试的区别

    移动APP、WEB端和PC端的测试区别主要体现在以下几个方面: 1. 平台和环境 移动APP是在移动设备上运行的应用程序,测试需要考虑不同的操作系统(如iOS、Android等)、不同的设备型号和屏幕分辨率。WEB端是在浏览器上运行的应用程序,测试需要考虑不同的浏览器类型和版本、

    2024年02月11日
    浏览(28)
  • Android应用:实现网络加载商品数据【OKHttp、Glide、Gson】

    实现网络加载商品数据的功能: 1、在AndroidManifest.xml中声明网络权限; 2、在app/build.gradle中添加okhttp, glide, gson等必需的第3方库; 3、在MainActivity中通过OkHttpClient连接给定的Web服务,获取商品数据;对应的json数据为本地的json文件,名字为goods_list_data.json;数据内容为:[ {“id”

    2024年02月08日
    浏览(45)
  • 前端上传图片到阿里云(pc端和uniapp小程序)

    官方文档JavaScript客户端签名直传 如果前端是原生的html写的话,就去官网下载示例来看,把文件里面的配置修改成子阿里云的配置就好 客户端进行表单直传到OSS时,会从浏览器向OSS发送带有Origin的请求消息。OSS对带有Origin头的请求消息会进行跨域规则(CORS)的验证,因此需

    2024年02月06日
    浏览(38)
  • Unity 3D PC平台发布|| Unity 3D Web 平台发布||Unity 3D Android平台发布

    PC 是最常见的游戏运行平台。 随着欧美游戏的崛起,PC 平台随之发生游戏登陆大潮。 在 PC 平台上发布游戏的步骤: 打开要发布的 Unity 3D 工程,执行  File  →  Build Settings  菜单命令。 在  Platform  列表框中选择  PC,MacLinux Standalone  选项,在右侧的  Target Platform  下拉列

    2024年02月04日
    浏览(30)
  • Unity跨平台开发指南(PC/VR/Android/WebGL)

    通常我在进行不同平台的设置时会基于以下几点: 1:创建、开发、打包时我们通常针对Player和Quality设置进行质量的设定 2:在不同平台上运行时,有不同的平台包体大小,加载方式的限定,测试、打包上的区别,帧率稳定60 3:代码封装上的区别,特别针对单一项目转为不同

    2024年01月21日
    浏览(39)
  • Unity3D PC、Android、iOS平台打包流程

    在Unity窗口中,按下Ctrl+Shift+B快捷键,或者在菜单栏选择File-BuildSettings...,打开设置窗口。“Platform”下的选择项默认选择“Windows,Mac,Linux”。单击左下方的“Player Settings...”继续后续设置(应用名、应用分辨率、图标等),如图1-1所示。 图1-1 PC平台选择 接着,点击Add Op

    2023年04月20日
    浏览(44)
  • 使用base64加密解密的多种方法:包含pc端和微信小程序

    1、pc端 Window 对象 Window 对象表示浏览器中打开的窗口。 平常在开发pc端浏览器的时候。如果要加密或者解密成为一个 base-64 编码的字符串。我们都可以使用Window 对象里的对象方法: atob() 解码一个 base-64 编码的字符串。 btoa() 创建一个 base-64 编码的字符串 我们可以直接在浏览

    2024年02月15日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包