C# 以编程方式添加按钮#

C# 以编程方式添加按钮#,c#,unityscript,C#,Unityscript,我正在尝试使用现有的预置在C#代码中创建按钮。我在网站上找到的只是 public GameObject a; public RectTransform ParentPanel; void Start() { for (int i = 0; i < 5; i++) { GameObject goButton = (GameObject)Instantiate(a); /error goButton.transform.SetParent(Par

我正在尝试使用现有的预置在C#代码中创建按钮。我在网站上找到的只是

public GameObject a;
public RectTransform ParentPanel;
void Start()
{
    for (int i = 0; i < 5; i++)
    {
        GameObject goButton = (GameObject)Instantiate(a); /error
        goButton.transform.SetParent(ParentPanel, false);
        goButton.transform.localScale = new Vector3(1, 1, 1);
            Button tempButton = goButton.GetComponent<Button>();
    }
}
公共游戏对象a;
公共事务委员会;
void Start()
{
对于(int i=0;i<5;i++)
{
GameObject goButton=(GameObject)实例化(a);/error
goButton.transform.SetParent(ParentPanel,false);
goButton.transform.localScale=新向量3(1,1,1);
Button tempButton=goButton.GetComponent();
}
}
在Unity项目中,我有一个名为“ButtonPrefab”的预置,我把Button对象放在这里。下一行中有一个错误

UnassignedReferenceException:尚未分配NewBehaviourScript的变量a。 您可能需要在检查器中为NewBehaviourScript脚本分配一个变量


我不熟悉团结。为什么未分配的var a可以使用Instantiate()给我按钮?为什么会出现这个错误?

您可以很容易地从资源文件夹中实例化预置。在项目的“资产”文件夹中创建一个名为“资源”的新文件夹。必须将其命名为Resources才能正常工作。然后,您可以按如下方式制作按钮:

GameObject button = Instantiate(Resources.Load("myButton", typeof(GameObject))) as GameObject;

假设您的预置名为“myButton”。

如果只是为了调试,您可能可以不受影响。您是否从编辑器中拖放游戏对象a?您好,在这个循环之后,我有3个新游戏对象?对于(inti=0;i<3;i++){var button=实例化(Resources.Load(“myButton”,typeof(GameObject)))为GameObject;这是一个问题吗?如果实例化按钮三次,将得到三个新对象,对吗。