广告
返回顶部
首页 > 资讯 > 移动开发 >UNITY 基础之 实现动态加载网络端、PC端和 ANDROID 端指定路径下的图片的简单方法
  • 748
分享到

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

unity游戏引擎 2023-09-24 16:09:16 748人浏览 泡泡鱼
摘要

一、简单介绍 Unity中的一些基础知识点,便于后期查看学习。 本节介绍,如何动态加载网络上,电脑上或者Android手机上指定路径的图片的简单方式,方法不唯一,仅供参考。 二、实现原理 UnityWEBRequest 发起网络请求,Do

一、简单介绍

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

--结束END--

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

本文链接: https://www.lsjlt.com/news/416984.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作