UGUI之在场景中设置、修改标签和按钮

UnityGUI使用一个特殊的OnGUI()函数,在该函数中加入实现UI的脚本。

它一共有两种类型的接口:GUI.xxx()GUILayout.xxx()

第一种需要自动手写填写处于屏幕上的位置。我之前学的教程都是用这种方式的,参考代码如下:

void OnGUI()
{
    //居中显示文字
    GUI.skin.label.alignment = TextAnchor.MiddleCenter;

    //设置字体大小
    GUI.skin.label.fontSize = 50;

    //创建一个标签,用于在指定位置显示 Game Over,这个位置和标签的大小由new Rect()确定,数据大小视需要而定
    GUI.Label(new Rect(0,0,Screen.width,Screen,height),"Game Over");

    //创建一个Button,当按下时触发事件
    if(GUI.Button(new Rect(Screen.width * 0.5f - 150,Screen.height * 0.7f,300,40),"Try again"))
    {
        //...
    }
}

第二种方法是Unity为我们自动排版的,我们只需要关心内容即可。它主要含有三个函数:

  • GUILayout.Label(string str):标签,用于显示文本。输入的参数为需要显示地文本。
  • GUILayout.Button(string str):按钮,用于触发事件,输入的参数为在按钮上显示的文本。它返回一个Bool值,表明是否按下了按钮。
  • GUILayout.TextField(string str):文本区域,用于输入文本。输入的参数为显示地文本,返回经过用户输入改动后的文本。
    参考代码如下:
string text = "";
string name = "";

void OnGUI()
{
    //用标签显示文本
    GUILayout.Label("请输入你的名字: ");

    //用文本区域输入你的名字
    text = Layout.TextField(text);

    if(GUILayout.Button("提交"))
    {
        name = Text;
    }

    //当name不为空时,显示输入的文本内容
    if(!string.IsNullOrEmpty(name))
    {
        GUILayout.Label("提交成功!名字:" + name);
    }
}

此示例的显示结果如下:
这里写图片描述

:该结果显示在场景的左上方,这是Unity自动排版的结果。更多内容等我学了再说。

 

posted @ 2016-07-30 16:36  larryking  阅读(2249)  评论(0编辑  收藏  举报