1 动态添加sprite
因为暂时未解决在脚本中动态指定atlas,所以,目前动态添加的sprite需要手动指定
public UIAtlas at;
// Use this for initialization
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);
首先把一个button做成prefab,然后定义button的父物体,将button添加到它下面,然后因为添加以后缩放系数变化了,所以如果直接添加,坐标变化会很大,因此手动指定一下