一开始以为 将图片导入Unity时, 将其 图片转为sprite 以为就可以直接 load为sprite了,可是 一直报null异常

原来是 加载后Debug出来是这个类型

Untiy-Resources 加载图片

Untiy-Resources 加载图片

Untiy-Resources 加载图片

因为 加载的时候 是Texture2D类型,而我硬生生将其 转为 sprite,难怪会报异常了,

 其实 用 Load方法的话,一般会Loade第一个,而不会load子物体(sprite),

然后sprite类是unity中 生成的, 要将图片变成sprite,需要去 create,其实也是

下面 将其 转换 创建从出来, Sprite pic = Sprite.Create(img, new Rect(0, 0, img.width, img.height), new Vector2(0.5f, 0.5f));Untiy-Resources 加载图片  就可以了 

 

 

另外还有个loadAll方法,要注意的是Texture不用转为sprite,转为sprite的话,obj数量就有10个 了

Untiy-Resources 加载图片

写法如下,这个是按导入的顺序进行 加载,上面是根据导入名字加载

Untiy-Resources 加载图片

而且 不能写成这样Untiy-Resources 加载图片否则 转换过程中会 丢失Untiy-Resources 加载图片报null异常

 

Untiy-Resources 加载图片

补充,Load方法中还可以用类型过滤掉, 加个typeof 参数就可以过滤掉错误的问题。

Untiy-Resources 加载图片

还有LoadAll也是 一样的。

拆箱 防止异常。

 

 

后来发现里面还有 泛型 写法。。。防止上面的null异常。

Sprite a=    Resources.Load<Sprite>("icon/J_01");

Texture2D a=    Resources.Load<Texture2D>("icon/J_01");

也不用考虑装箱,拆箱。。。

相关文章:

  • 2021-10-18
  • 2021-12-01
  • 2021-08-04
  • 2021-06-01
  • 2021-08-26
  • 2021-11-11
猜你喜欢
  • 2022-12-23
  • 2021-05-31
  • 2022-12-23
  • 2022-12-23
  • 2021-03-31
  • 2021-12-23
  • 2021-03-29
相关资源
相似解决方案