1 动态添加sprite
因为暂时未解决在脚本中动态指定atlas,所以,目前动态添加的sprite需要手动指定
- public UIAtlas at;
-
- void Start () {
- test();
- }
- void test()
- {
- GameObject a = GameObject.Find("Panel");
- UISprite b = NGUITools.AddSprite(a,at,"Highlight - Thin");
- b.MakePixelPerfect();
- }
首先找到需要添加sprite的父物体
GameObject a = GameObject.Find("Panel");
这里是添加在panel下面
然后动态添加一个sprite ,使用NGUITools.AddSprite添加,参数为(父物体,atlas,spritename)。
2 动态添加做成prefab的NGUI组件
- GameObject a =(GameObject) Instantiate(Resources.Load("Button"));
- a.transform.parent = GameObject.Find("Panel").transform;
- GameObject b = GameObject.Find(a.name);
- b.transform.localPosition = new Vector3(0,0,0);
- b.transform.localScale= new Vector3(1,1,1);
![](https://img-my.csdn.net/uploads/201206/04/1338821679_7851.png)
首先把一个button做成prefab,然后定义button的父物体,将button添加到它下面,然后因为添加以后缩放系数变化了,所以如果直接添加,坐标变化会很大,因此手动指定一下。
- GameObject parent = GameObject.Find("需要添加到的父物体的名称");
- atlas = (UIAtlas)Resources.Load("Atlas图集名称",typeof(UIAtlas));
- UISprite sprite = NGUITools.AddSprite(parent,atlas,"sprite元素的名称");
- sprite.transform.localScale = new Vector3(1,1,1);
- sprite.transform.localPosition = new Vector3(0,0,0);
- sprite.MakePixelPerfect();
- atlas = (UIAtlas)Resources.Load("sprite",typeof(UIAtlas));
这句用来动态指定atlas.