在上一篇,我们简单探讨了 ResLoader 的设计思考。
在这一篇,我们学习如何从其他位置加载资源。
从 Resources 中加载资源很简单,代码如下:
var sprite = mResLoader.LoadSprite ("resources://TestSprite");
var spriteRenderer = GetComponent<SpriteRenderer>();
spriteRenderer.sprite = sprite;只需要加上 resources:// 前缀即可。
加载网络图片也很简单,只需要加上前缀: netimage: 即可,不过,从网络中加载资源是异步加载,所以需要使用异步加载的 API。
var imageUrl = "http://file.liangxiegame.com/296b0166-bdea-47d5-ac87-4b55c91df16f.png";
mResLoader.Add2Load ("netimage:" + imageUrl,(succeed,res) => {
if (succeed)
{
var spriteRenderer = GetComponent<SpriteRenderer>();
var texture2D = res.Asset as Texture2D;
var sprite = Sprite.Create(texture2D,new Rect(0,0,texture2D.width,texture2D.height),Vector2.one * 0.5f);
spriteRenderer.sprite = sprite;
}
});
mResLoader.LoadAsync();从本地加载资源,实际上是从 Application.persistentDataPath 中加载资源。
使用方式很简单,只需要加上 localimage: 前缀即可。
因为用得比较少,所以这里不做介绍。
本篇的内容中,加载网络图片和加载 Resources 资源使用得比较多。
尤其是从 Resources 中加载资源,非常适合作为过渡方案:当一些项目一开始用的是 Resources,后来接触了 QF 的 Res Kit,这种情况下,可以先使用 Res Kit 加载 Resources 资源你的方式。