【问题标题】:Add buttons programmatically Unity C#以编程方式添加按钮 Unity C#
【发布时间】:2016-03-07 17:14:34
【问题描述】:

我正在尝试使用现有的 Prefab 在 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>();
    }
}

在 Unity 项目中,我有一个名为“ButtonPrefab”的预制件,我在其中放置了按钮对象。下面一行有错误

UnassignedReferenceException: NewBehaviourScript 的变量 a 没有被赋值。 您可能需要在检查器中分配 NewBehaviourScript 脚本的变量。

我是 Unity 的新手。为什么没有分配 var a 可以使用 Instantiate() 给我按钮?为什么会出现这个错误?

【问题讨论】:

标签: c# unity3d


【解决方案1】:

您可以在 Resources 文件夹中非常轻松地实例化预制件。在项目的 Assets 文件夹中创建一个名为 Resources 的新文件夹。必须将其命名为 Resources 才能正常工作。然后你可以像这样制作你的按钮:

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

假设您的预制件名为“myButton”。

【讨论】:

  • 您好,在这个循环之后我有 3 个新的 GameObjects 吗? for (int i = 0; i
  • 这是个问题吗?如果您将按钮实例化 3 次,您将获得三个新对象,正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多