首先在项目中创建一个Resources目录,接着把需要的图片放在这里面,可以有子文件夹么?当然可以,文件结构很重要哦~
NGUI加载图片的方法其实是加载NGUI生成的atlas,大家可以看看NGUI的图集文件(一个material、一个prefab,一张图集),我们要做的就是动态加载这个prefab(它有UIAtlas属性),然后通过图片名称更改图片。
我这里那UISprite来说明,我是这样做的:
UIAtlas tu = Resources.Load("Cards/ 001", typeof(UIAtlas)) as UIAtlas;
对于上面这行需要注意,后面的type,单独写括号里面的typeof(UIAtlas) 是不行的,后面还要更上 as UIAtlas,
如果你的是GameObject的话就是这样:
GameObject tu = Resources.Load("Cards/ 001", typeof(GameObject )) as GameObject ;
明白了吧。。。。
Sprite sprite = _Player; //_Player是暴露变量,用来记录外面的UISprite,你懂得
sprite.atlas = tu;
sprite.spriteName = "photo"; //这里跟上这个atlas里面的图片的名称
sprite.MakePixelPerfect(); //这里记得要make一下,不然_Player的大小是不会变化的,看你个人需要
Debug.Log("资源加载完成");
我写的是这样的:
private UIAtlas sttui;
if (cyyst == 0)//汉语
{
sttui = Resources.Load("stttuji/sttcn", typeof(UIAtlas)) as UIAtlas;
}
else if (cyyst == 1)//英语
{
sttui = Resources.Load("stttuji/stten", typeof(UIAtlas)) as UIAtlas;
}
for (int i = 0; i < Tips.Length; i++)
{
UISprite sqq= Tips[i].GetComponent<UISprite>();
sqq.atlas = sttui;
}
将图集放在rsources文件吓得那里就行
最后记得卸载
//UIAtlas[] syy = Resources.FindObjectsOfTypeAll<UIAtlas>();
// Debug.Log("我看看有多少图集啊" + syy.Length);
Resources.UnloadUnusedAssets();
加的资料 :
Resources.Load("文件夹名");我记得说这样可以load整个文件夹的图片
Resources.Load("文件夹名\图片名");
【大小写自己注意一下】
貌似需要看你声明的类型是什么了。比如一张图片,texture2d
texture2d tex = Resources.Load(文件夹名\图片名", typeof(texture2d)) as texture2d;
补充一下:(注意类型和大小写,还有就是中英文的标点)
Resources.Load("文件夹名");
加载整个文件夹图片
先声明一个存放图片数组 texture2d = object[];
object = Resources.Load("图片文件夹名");
然后可以这样提取数组中的元素(存放的是一组图片):object[0],object[1],object[2],object[3]。
这是图片的可行
Texture sttr = Resources.Load("stttupian/sttbingocn/HTPPage1_cn", typeof(Texture)) as Texture;