(3/∞)UnityGUI中的Lable和Button组件

UnityGUI中给我们提供了很多用于显示UI界面的静态方法,由于UnityGUI是一个代码驱动的GUI,所以我们没有办法直接在游戏的Scene窗口直接创建,而是通过代码的形式去设置。

想要调用UnityGUI中的静态方法,只能够在继承了Mono脚本的类中的OnGUI函数中调用,这个函数时每帧执行,且我们一般只在其中执行GUI相关界面绘制和操作逻辑,该函数在OnDisable之前,LateUpdate之后执行。

 private void OnGUI()
    {
        //在其中书写GUI相关代码 即可显示GUI内容
    }

GUI给我们提供了很多的常用基础控件,它们都是GUI公共类中的静态函数,参数也大同小异。

其中几乎都存在的参数有

位置参数:Rect参数 x y位置 w h代表尺寸

显示文本:string 参数

图片信息:Texture参数

综合信息: GUIContent参数

自定义样式: GUIStyle参数

每种控件都存在多钟重载,都是各个参数的排列组合,且位置信息和显示信息是必备的参数内容。

例如:

Lable(文本)控件:

我们可以这样使用文本控件,传入一个Rect的实例给Lable或者直接在外部声明一个公开的Rect字段,由Inspector窗口对其进行初始化,达到在Game运行时调试UI的目的。

        GUI.Label(new Rect(0, 0, 200, 20),"王嘉然,认识王嘉然",style);
        GUI.Label(rect, texture);

Label控件也存在很多重载方法

        //综合使用
        GUI.Label(rect2, content);
        Debug.Log(GUI.tooltip);

        //自定义样式
        //Lable 函数存在很多重载,其中有一个参数就是传递一个Style进去

下面为各个参数在Inspector窗口中的状态

    Rect参数

Content参数

 style参数

Button控件基本与Lable相同,但Button控件存在一个bool类型返回值,可用于判断按钮是否点击。代码如下:

        //基本使用
        //在按钮范围内 按下鼠标再抬起鼠标 才算一次点击 才会返回true
        if (GUI.Button(buttonRect, buttonContent, buttonStyle))
        {
            print("按钮被点击了");
        }
        //只要在长按按钮范围内 按下鼠标 就会一直返回true
        if (GUI.RepeatButton(buttonRect, buttonContent, buttonStyle))
        {
            print("长按按钮被点击");
        }

猜你喜欢

转载自blog.csdn.net/qq_52690206/article/details/127040217