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