C# 如何使用NGUI(Unity)动态创建按钮
我对unity和NGUI都是新手,我不知道如何动态地将自定义atlas和sprite分配到按钮中C# 如何使用NGUI(Unity)动态创建按钮,c#,button,dynamic,unity3d,ngui,C#,Button,Dynamic,Unity3d,Ngui,我对unity和NGUI都是新手,我不知道如何动态地将自定义atlas和sprite分配到按钮中 using UnityEngine; using System.Collections; public class createButton : MonoBehaviour { public createButton(){ GameObject newButton = new GameObject (); newButton.name = "newButto
using UnityEngine;
using System.Collections;
public class createButton : MonoBehaviour {
public createButton(){
GameObject newButton = new GameObject ();
newButton.name = "newButton" + 1;
//go.AddComponent<UISprite> ();
newButton.AddComponent<UIButton> ();
newButton.AddComponent<UISprite> ();
}
}
使用UnityEngine;
使用系统集合;
公共类createButton:MonoBehavior{
公共createButton(){
GameObject newButton=newgameobject();
newButton.name=“newButton”+1;
//go.AddComponent();
newButton.AddComponent();
newButton.AddComponent();
}
}
使用预制件:
public class createButton : MonoBehaviour {
public GameObject myNguiButtonPrefab;
private int nextId;
public createButton(){
GameObject newButton = (GameObject)Instantiate(myNguiButtonPrefab);
newButton.name = "newButton" + (nextId++);
MyButtonScript buttonScript = newButton.GetComponent<MyButtonScript>();
buttonScript.Setup(/* some parameters */);
}
}
有没有一个原因,你这样做是动态的,而不是实例化一个预置?丹·普泽伊:我想用一个预置动态创建不同的按钮,这会造成混乱吗?或者我现在很难做到这一点。
public class MyButtonScript : MonoBehaviour {
public void Setup(/* Some parameters */){
// Do some setting up
UISprite sprite = GetComponent<UISprite>();
sprite.spriteName = "someSpriteBasedOnTheParametersPassed";
}
void OnClick(){
// Do something when this button is clicked based on how we set this button up
}
}
public class createButton : MonoBehaviour {
public MyButtonScript myNguiButtonPrefab;
private int nextId;
public createButton(){
MyButtonScript newButton = (MyButtonScript )Instantiate(myNguiButtonPrefab);
newButton.name = "newButton" + (nextId++);
newButton.Setup(/* some parameters */);
}
}