KING_UNITY学习之Unity2D代码动态为Sprite Renderer的Sprite赋值sprite精灵图片
2015-12-20 12:01
656 查看
如何通过代码动态设置Sprite Renderer的Sprite? Sprite精灵有两种情况,一种是single模式的sprite,另外一种是multiple的sprite。下面分别写写这两种类型的处理方法:
一、Sprite(single):
如有不同的图片,可以用字典来保存,统一管理。如:
二、Sprite(multiple):
Sprite被设置为Multiple的情况下,如何根据子Sprite的名字设置精灵图片呢:
找不到直接根据名字取子Sprite的方法,但是我们可以通过
Sprite[] sprites = Resources.LoadAll<Sprite>("path"); // path为Sprite在Resources中的路径
来访问到所有子Sprite。只有我们初始化时遍历这些子Sprite,以name为key放入字典中,就可以根据名字取得该子Sprite啦
一、Sprite(single):
<span style="font-size:18px;"><span style="white-space:pre"> </span> SpriteRenderer spr = gameObject.GetComponent<SpriteRenderer>(); Texture2D texture2d = (Texture2D)Resources.Load("pictureName");//更换为pictureName的图片 Sprite sp = Sprite.Create(texture2d,spr.sprite.textureRect,new Vector2(0.5f,0.5f));//注意居中显示采用0.5f值,保证<span style="font-family: Arial; line-height: 26px;">所更换图片尺寸与原图片相同</span> spr.sprite = sp; </span>
如有不同的图片,可以用字典来保存,统一管理。如:
<span style="font-size:18px;"><span style="white-space:pre"> </span>public Sprite[] potSprites; <span style="white-space:pre"> </span>private Dictionary<string, Sprite> spritesDictionary; <span style="white-space:pre"> </span>/// <summary> /// 加载Sprite /// </summary> private void LoadSprite() { spritesDictionary = new Dictionary<string, Sprite>(); spritesDictionary.Add("pot1",potSprites[0]); spritesDictionary.Add("pot2", potSprites[1]); }</span>
二、Sprite(multiple):
Sprite被设置为Multiple的情况下,如何根据子Sprite的名字设置精灵图片呢:
找不到直接根据名字取子Sprite的方法,但是我们可以通过
Sprite[] sprites = Resources.LoadAll<Sprite>("path"); // path为Sprite在Resources中的路径
来访问到所有子Sprite。只有我们初始化时遍历这些子Sprite,以name为key放入字典中,就可以根据名字取得该子Sprite啦
<span style="font-size:18px;"><span style="white-space:pre"> </span> Sprite[] sprites = Resources.LoadAll<Sprite>("weizhu"); for (int i = 0; i < sprites.Length; i++) { print("sprites["+i+"]: " + sprites[i]); spritesDictionary.Add(sprites[i].name,sprites[i]); }</span>
相关文章推荐
- Unity中UGUI人物血条跟随的几种实现方式(一)
- unity3d的四元数 Quaternion
- 图文详解Unity3D中Material的Tiling和Offset是怎么回事
- Unity日志工具——封装,跳转
- 在Unity中接入Xbox360手柄
- Unity EditorWindow自定义弹出窗口
- Unity - 序列化 ScriptableObject、SerializedProperty 编辑器运用进阶
- [转] Unity的Profiler性能分析
- 【Unity游戏开发之十三】Unity游戏名字本地化
- Unity - 序列化 ScriptableObject、SerializedProperty 编辑器运用
- Unity3D手游开发日记(2) - 技能系统架构设计
- win8.1下unity串口投币器(纸钞识别器)开发
- Unity3D手游开发日记(1) - 移动平台实时阴影方案
- Unity3D-C#扩展方法
- Unity中的Serializable
- Unity3D-MONO脚本自带函数执行顺序
- Unity3D-PlayerPrefs本地数据保存读取
- Unity3D性能优化总结(转纳金网)
- Unity Shader入门介绍
- Unity5.3Json测试学习