从Unity 4.6中的C#脚本创建UI按钮,不带任何预制件

时间:2014-11-28 05:12:19

标签: button unity3d 2d

如何在Unity 4.6中创建带有文本标签的普通按钮,而不使用任何预制件或克隆现有游戏对象?我将使用该按钮进行调试,因此我不想使用此按钮使设计层次结构混乱。

3 个答案:

答案 0 :(得分:10)

您可以将此用于UI 4.6

    public void CreateButton(Transform panel ,Vector3 position, Vector2 size, UnityEngine.Events.UnityAction method)
{
    GameObject button = new GameObject();
    button.transform.parent = panel;
    button.AddComponent<RectTransform>();
    button.AddComponent<Button>();
    button.transform.position = position;
    button.GetComponent<RectTransform>().SetSize(size);
    button.GetComponent<Button>().onClick.AddListener(method);
}

答案 1 :(得分:2)

以下内容仅适用于Unity3的遗留“gui”系统(大约在2012年之前)。它现在不可用。

将此功能添加到任何脚本,它将在左上角显示100 x 100像素大小的按钮。然后只需将Debug.Log更改为您的调试代码。

void OnGUI() // deprecated, use ordinary .UI now available in Unity
{
    if(GUI.Button(new Rect(0, 0, 100, 100), "Debug!")){
        Debug.Log("Do some debugging");
    }
}

答案 2 :(得分:1)

您需要创建要实例化的UI元素的预制件。 然后你可以像游戏对象一样操纵你的ui元素,并使用GetComponet方法来操作属性和方法。 请参阅常见问题解答http://docs.unity3d.com/Manual/HOWTO-UICreateFromScripting.html