【Unity教程】UGUI中如何动态生成精灵的几种方法
2016-12-30 17:42
971 查看
sprite.create()的方法在这篇文章中【Unity&UGUI】动态改变精灵物体的图片
本篇文章主要说sprite.Load()方法是如何新建精灵的
---1.2D精灵物体的创建
这几行代码是创建2D精灵的主要代码,这几个代码都在start()函数中
//Transform EGO = Resources.Load("EmptyGO",typeof(Transform))as Transform;
//gob = Instantiate(EGO);//上面这两行代码是生成 预制体 物体 的代码
GameObject pic = new GameObject("123/94");
//加载图片,进行接收
Sprite spr = Resources.Load<Sprite>("123/94");
//添加加载到的图片资源到2D精灵组件
pic.AddComponent<SpriteRenderer>().sprite = spr;
运行后,生成了名字为123/94的2D精灵,得到的图片也是测试用的图片
第一种情况,把123/94改成了94,因为测试的图片精灵名字是94
GameObject pic = new GameObject("94");
//加载图片,进行接收
Sprite spr = Resources.Load<Sprite>("94");
//添加加载到的图片资源到2D精灵组件
pic.AddComponent<SpriteRenderer>().sprite = spr;
生成的精灵物体,名字已经改成了94,但是没有找到精灵物体
仔细观察代码发现,
GameObject pic = new GameObject("94");//新建一个空的物体取个名字“94
//加载图片,进行接收
Sprite spr = Resources.Load<Sprite>("123/94");//创建一个精灵组件,路径为“123/94”
//添加加载到的图片资源到2D精灵组件
pic.AddComponent<SpriteRenderer>().sprite = spr;//把这个精灵组件,添加到 94 物体的组件中
---
Transform EGO = Resources.Load("EmptyGO",typeof(Transform))as Transform;
gob = Instantiate(EGO);
---
这样也可以生成预制体精灵物体
//给定一个路径
S_Path_ClothBasePrefab = "Prefab/Base2DSpriteRenderer";
//Sprite BGO = Resources.Load<Sprite>(S_Path_ClothBasePrefab);
//通过名字查到到预制体,类型为Transform,进行转换,接收
UnityEngine.Transform Base2DSprite = Resources.Load(S_Path_ClothBasePrefab, typeof(UnityEngine.Transform)) as UnityEngine.Transform;
gob = Instantiate(Base2DSprite);
使用transform查找对象比find函数更快
有的字符串是最常使用的,最好在初始化的时候定义一个私有字符串变量储存起来
因为使用了using UnityEngine;和using DragonBones;为了区分这两个命名空间相同的函数,有的地方前缀要加上UnityEngine.用来区分
预制体物体必须放在Resources文件夹下,空的2D精灵,便于创建替换
本篇文章主要说sprite.Load()方法是如何新建精灵的
---1.2D精灵物体的创建
这几行代码是创建2D精灵的主要代码,这几个代码都在start()函数中
//Transform EGO = Resources.Load("EmptyGO",typeof(Transform))as Transform;
//gob = Instantiate(EGO);//上面这两行代码是生成 预制体 物体 的代码
GameObject pic = new GameObject("123/94");
//加载图片,进行接收
Sprite spr = Resources.Load<Sprite>("123/94");
//添加加载到的图片资源到2D精灵组件
pic.AddComponent<SpriteRenderer>().sprite = spr;
运行后,生成了名字为123/94的2D精灵,得到的图片也是测试用的图片
第一种情况,把123/94改成了94,因为测试的图片精灵名字是94
GameObject pic = new GameObject("94");
//加载图片,进行接收
Sprite spr = Resources.Load<Sprite>("94");
//添加加载到的图片资源到2D精灵组件
pic.AddComponent<SpriteRenderer>().sprite = spr;
生成的精灵物体,名字已经改成了94,但是没有找到精灵物体
仔细观察代码发现,
GameObject pic = new GameObject("94");//新建一个空的物体取个名字“94
//加载图片,进行接收
Sprite spr = Resources.Load<Sprite>("123/94");//创建一个精灵组件,路径为“123/94”
//添加加载到的图片资源到2D精灵组件
pic.AddComponent<SpriteRenderer>().sprite = spr;//把这个精灵组件,添加到 94 物体的组件中
---
Transform EGO = Resources.Load("EmptyGO",typeof(Transform))as Transform;
gob = Instantiate(EGO);
---
这样也可以生成预制体精灵物体
//给定一个路径
S_Path_ClothBasePrefab = "Prefab/Base2DSpriteRenderer";
//Sprite BGO = Resources.Load<Sprite>(S_Path_ClothBasePrefab);
//通过名字查到到预制体,类型为Transform,进行转换,接收
UnityEngine.Transform Base2DSprite = Resources.Load(S_Path_ClothBasePrefab, typeof(UnityEngine.Transform)) as UnityEngine.Transform;
gob = Instantiate(Base2DSprite);
使用transform查找对象比find函数更快
有的字符串是最常使用的,最好在初始化的时候定义一个私有字符串变量储存起来
因为使用了using UnityEngine;和using DragonBones;为了区分这两个命名空间相同的函数,有的地方前缀要加上UnityEngine.用来区分
预制体物体必须放在Resources文件夹下,空的2D精灵,便于创建替换
参考资料:12:unity3D-Resources加载预制体与Sprite精灵图片
相关文章推荐
- 【Unity&精灵】如何通过已知道的坐标获取物体&动态生成墙壁
- Unity中使用UGUI制作Prefab后,调用Instantiate动态生成Button无法点击的解决方法
- 【Unity教程】如何动态更换精灵图片&在图集中更换精灵图片
- 【Unity教程】如何动态更换精灵图片&在图集中更换精灵图片
- ABAP 动态生成内表的几种方法(Several Methods of Dynamic Internal Table Creation)
- [unity基础教程]关于Unity3D中Resources动态加载NGUI图片的方法!
- UGUI如何在程序中动态的为按钮绑定方法
- ABAP 动态生成内表的几种方法
- 【Unity&NGUI&UGUI】2D精灵物体变色彩透明以及图片高亮变色的方法
- jq给动态生成的标签绑定事件的几种方法
- 【Unity&UGUI】动态改变精灵物体的图片
- 动态JSP如何生成静态HTML【方法一】
- ABAP 动态生成内表的几种方法
- 动态生成静态页面的几种方法
- ABAP 动态生成内表的几种方法
- [Unity2d系列教程] 004.Unity如何调用ios的方法(SDK集成相关)
- [Unity2d系列教程] 006.Unity如何根据图片自动生成Animator
- jquery 给动态生成的标签绑定事件的几种方法总结
- ABAP 动态生成内表的几种方法(Several Methods of Dynamic Internal Table Creation)
- 【Unity教程】浅谈Find对象的几种方法优劣