赞
踩
一开始以为 将图片导入Unity时, 将其 图片转为sprite 以为就可以直接 load为sprite了,可是 一直报null异常
原来是 加载后Debug出来是这个类型
因为 加载的时候 是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)); 就可以了
另外还有个loadAll方法,要注意的是Texture不用转为sprite,转为sprite的话,obj数量就有10个 了
写法如下,这个是按导入的顺序进行 加载,上面是根据导入名字加载
而且 不能写成这样否则 转换过程中会 丢失
报null异常
补充,Load方法中还可以用类型过滤掉, 加个typeof 参数就可以过滤掉错误的问题。
还有LoadAll也是 一样的。
拆箱 防止异常。
后来发现里面还有 泛型 写法。。。防止上面的null异常。
Sprite a= Resources.Load<Sprite>("icon/J_01");
Texture2D a= Resources.Load<Texture2D>("icon/J_01");
也不用考虑装箱,拆箱。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。