当前位置:   article > 正文

Unity3D中Resources动态加载图片_unity 动态加载图片

unity 动态加载图片

问题:unity的Resources动态加载就不必多说了,这里出现的问题是当我把图片放入Resources文件夹后,使用Resources.Load(datapath)却并没有出现图片。


分析:由于你放在文件夹下的是图片,是Texture2D类型,但是实际用在u3d中的是sprite,所以需要转换类型。
方式:

1.在代码中先行创建Texture2D变量,获取外部图片,利用已完成的该变量之后创建sprite
2.直接在unity中将图片转为sprite,然后直接调用

编辑器设置

 代码

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEditor;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. public class LoadTest : MonoBehaviour
  7. {
  8. public Image image;
  9. public Button btn_up;
  10. public Button btn_down;
  11. void Start()
  12. {
  13. btn_up.onClick.AddListener(Btn_up);
  14. btn_down.onClick.AddListener(Btn_down);
  15. }
  16. void Btn_up()
  17. {
  18. ShowImage("前");
  19. }
  20. void Btn_down()
  21. {
  22. ShowImage("后");
  23. }
  24. /// <summary>
  25. /// 显示图片
  26. /// </summary>
  27. /// <param name="imageName"></param>
  28. public void ShowImage(string imageName, bool isShow = true)
  29. {
  30. if (imageName == null)
  31. {
  32. Debug.Log("Panel_serverResponseImage:地址:ShowImage:服务器响应的图片名称为空");
  33. return;
  34. }
  35. else
  36. {
  37. string path = "Image/" + imageName;
  38. Texture2D imageLoad = Resources.Load(path) as Texture2D;
  39. Debug.Log("Panel_serverResponseImage:地址:ShowImage:imageLoad:" + imageLoad);
  40. if (imageLoad == null)
  41. {
  42. Debug.Log("Panel_serverResponseImage:地址:ShowImage:服务器响应的图片加载为空");
  43. }
  44. else
  45. {
  46. Sprite texSprite= Sprite.Create(imageLoad, new Rect(0, 0, imageLoad.width, imageLoad.height), new Vector2(0.5f, 0.5f));
  47. image.GetComponent<Image>().sprite = texSprite;
  48. }
  49. }
  50. }
  51. }

实际运行 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/103480
推荐阅读
相关标签
  

闽ICP备14008679号