Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用NGUI(Unity)动态创建按钮_C#_Button_Dynamic_Unity3d_Ngui - Fatal编程技术网

C# 如何使用NGUI(Unity)动态创建按钮

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

我对unity和NGUI都是新手,我不知道如何动态地将自定义atlas和sprite分配到按钮中

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 */);
    }
}