我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

一、简单介绍

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

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

二、实现原理

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

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

三、注意事项

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

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

四、效果预览

五、实现步骤

打开Unity,新建工程

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

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

注意,Android 注意 给读写权限

运行效果如上

六、关键代码

  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. }

  19. }

  20. private void Start()

  21. {

  22. rawImage = GetComponent();

  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();

  45. }

  46. rawImage.texture = texture;

  47. }

  48. ///

  49. /// 请求图片

  50. ///

  51. /// 图片地址,like 'http://www.my-server.com/image.png '

  52. /// 请求发起后处理回调结果的委托,处理请求结果的图片

  53. ///

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

  55. {

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

  57. }

  58. ///

  59. /// 请求图片

  60. ///

  61. /// 图片地址,like 'http://www.my-server.com/image.png '

  62. /// 请求发起后处理回调结果的委托,处理请求结果的图片

  63. ///

  64. IEnumerator _GetTexture(string url, Action 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. }

来源地址:https://blog.csdn.net/qq_21743659/article/details/131686355

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录