GUILayout

GUILayout.BeginArea

在固定屏幕区域中开始 GUI 控件的 GUILayout 块。

默认情况下,使用 GUILayout 创建的任何 GUI 控件都放置在屏幕的左上角。 如果要在任意区域中放置一系列自动布局的控件,请使用 GUILayout.BeginArea 定义一个新区域供自动布局系统使用。

    void DrawBeginAre()
    {
        GUILayout.BeginArea(new Rect(10, 10, 100, 50),tex);
        GUILayout.Button("Click me");
        GUILayout.Button("Or me");
        GUILayout.Button("me");
        GUILayout.EndArea();
    }

在这里插入图片描述
Rect中(x坐标,y坐标,宽度,高度)

GUILayout.BeginHorizontal

在此元素中呈现的所有控件将水平相邻放置。必须通过呼叫 EndHorizontal 来关闭该组。
在这里插入图片描述

    void DrawBeginHorizontal()
    {
        GUILayout.BeginHorizontal("box");
        GUILayout.Button("I'm the button");
        GUILayout.Button("I'm the first button");
        GUILayout.Button("I'm to the right");

        GUILayout.EndHorizontal();
    }

GUILayout.BeginScrollView

自动布局的滚动视图将获取您在其中的任何内容并正常显示。如果不适合,将出现滚动条。对 BeginScrollView 的调用必须始终与对 EndScrollView 的调用匹配。

    Vector2 scrollPosition;
    void DrawScroll()
    {
        scrollPosition = GUILayout.BeginScrollView(
            scrollPosition, GUILayout.Width(300), GUILayout.Height(100));
        GUILayout.Label("123");
        if (GUILayout.Button("Clear"))
        { }
        GUILayout.Label("456");
        GUILayout.Label("456");
        GUILayout.Label("456");
        GUILayout.Label("456");
        GUILayout.EndScrollView();
    }

在这里插入图片描述

GUILayout.BeginVertical

在此元素内呈现的所有控件将垂直放置在彼此下方。必须通过调用 EndVertical 来关闭该组

    void DrawBeginVertical()
    {
        GUILayout.BeginVertical("box");
        GUILayout.Button("I'm the button");
        GUILayout.Button("I'm the first button");
        GUILayout.Button("I'm to the right");

        GUILayout.EndVertical();
    }

在这里插入图片描述

GUILayout.Box

这将创建一个包含静态文本或图像的框,但不包含其他 GUI 控件。如果要为一组 GUI 控件创建一个矩形容器,请使用其中一个分组功能(BeginHorizontal、BeginVertical、BeginArea 等)。

    void DrawBox()
    {
        GUILayout.Box(tex);
        GUILayout.Box("This is an sized label");
    }

在这里插入图片描述

GUILayout.Button

创建一个可以按下和释放的按钮 一个普通按钮。释放此按钮时,按钮返回 预期值。如果将鼠标移离按钮,则不会单击鼠标。

    public Texture tex;
    void DrawButton()
    {
        if (GUILayout.Button(tex))
        {
            Debug.Log("Clicked the image");
        }
        if (GUILayout.Button("I am a regular Automatic Layout Button"))
        {
            Debug.Log("Clicked Button");
        }
    }

在这里插入图片描述

GUILayout.FlexibleSpace()

插入一个灵活的空间元素。

灵活的空间会占用布局中的任何剩余空间。

    void DrawFlexibleSpace()
    {
        GUILayout.BeginArea(new Rect(10, 10, 400, 60));
        if (GUILayout.Button("I am a regular Automatic Layout Button"))
        {
            Debug.Log("Clicked Button");
        }
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("I am a regular Automatic Layout Button"))
        {
            Debug.Log("Clicked Button");
        }
        GUILayout.EndArea();
        GUILayout.FlexibleSpace();
        GUILayout.BeginArea(new Rect(10, 100, 400, 60));
        GUILayout.BeginHorizontal("box");
        GUILayout.Button("I'm the button");
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("I am a regular Automatic Layout Button"))
        {
            Debug.Log("Clicked Button");
        }
        GUILayout.EndHorizontal();
        GUILayout.EndArea();
    }

在这里插入图片描述

GUILayout.Height

传递给控件的选项以为其提供绝对高度。

    void DrawButton()
    {
        GUILayout.Button("A Button with fixed height", GUILayout.Height(300));
    }

在这里插入图片描述

GUILayout.ExpandHeight

传递给控件以允许或禁止垂直扩展的选项。

    void DrawButton()
    {
        GUILayout.Button("A Button with fixed height", GUILayout.ExpandHeight(true));
    }

在这里插入图片描述

GUILayout.ExpandWidth

传递给控件以允许或禁止水平扩展的选项。

如果为真,则封闭的 UI 元素可以展开以填充可用的水平宽度。

    void DrawButton()
    {
        GUILayout.BeginVertical();
        GUILayout.Button("Short Button", GUILayout.ExpandWidth(true));
        GUILayout.Button("Very very long Button", GUILayout.ExpandWidth(false));
        GUILayout.EndVertical();
    }

在这里插入图片描述

GUILayout.HorizontalScrollbar

游戏视图中的水平滚动条。

    void DrawHorizontalScrollbar()
    {
        hSbarValue = GUILayout.HorizontalScrollbar(hSbarValue, 1.0f, 0.0f, 10.0f);
        GUILayout.Label("This is a text that makes space");
    }

在这里插入图片描述

GUILayout.HorizontalSlider

用户可以拖动的水平滑块来更改最小值和最大值之间的值。

    void DrawHorizontalSlider()
    {
        hSbarValue = GUILayout.HorizontalSlider(hSbarValue, 0.0f, 10.0f);
    }

在这里插入图片描述

GUILayout.Label

制作自动布局标签。

标签没有用户交互,不会捕获鼠标单击,并且始终以正常样式呈现。如果要创建可直观地响应用户输入的控件,请使用游戏视图中的 Box控件

    void DrawLable()
    {
        GUILayout.Label("This is an sized label");
    }

在这里插入图片描述

GUILayout.MaxHeight

传递给控件以指定最大高度的选项。

GUILayout.MaxWidth

传递给控件以指定最大宽度的选项。

GUILayout.MinHeight

传递给控件以指定最小高度的选项。

GUILayout.MinWidth

传递给控件以指定最小宽度的选项。

注意:此选项将覆盖自动宽度布局参数

GUILayout.PasswordField

创建一个文本字段,用户可以在其中输入密码。

   string passwordToEdit = "My Password";

    void DrawPasswordField()
    {
        passwordToEdit = GUILayout.PasswordField(passwordToEdit, "*"[0], 8);
    }

在这里插入图片描述

GUILayout.RepeatButton

制作一个重复按钮。只要用户按住鼠标,按钮就会返回 true

    void DrawRepeatButton()
    {
        if (GUILayout.RepeatButton("I am a regular Automatic Layout Button"))
        {
            Debug.Log("Clicked Button");
        }
    }

在这里插入图片描述

GUILayout.SelectionGrid

创建选择网格。

    private int selGridInt;
    private string[] selStrings = { "123", "456", "789" };
    void DrawSelectionGrid()
    {
        selGridInt = GUILayout.SelectionGrid(selGridInt, selStrings, 2);
    }    

在这里插入图片描述

GUILayout.Space

在当前布局组中插入一个空格。

空间的方向取决于您发出命令时当前所在的布局组。如果在垂直组中,则空间将是垂直的。注意:这将覆盖两个按钮之间GUILayout.ExpandWidth和GUILayout.ExpandHeight

    void DrawRepeatButton()
    {
        if (GUILayout.RepeatButton("I am a regular Automatic Layout Button"))
        {
            Debug.Log("Clicked Button");
        }
        GUILayout.Space(20);
        if (GUILayout.RepeatButton("I am a regular Automatic Layout Button"))
        {
            Debug.Log("Clicked Button");
        }
    }

在这里插入图片描述

GUILayout.TextArea

创建一个多行文本字段,用户可以在其中编辑字符串

    string stringToEdit = "Hello World\nI've got 2 lines...";

    void DrawTextArea()
    {
        stringToEdit = GUILayout.TextArea(stringToEdit, 200);
    }

在这里插入图片描述

GUILayout.TextField

创建一个单行文本字段,用户可以在其中编辑字符串。

    void DrawTextField()
    {
        stringToEdit = GUILayout.TextField(stringToEdit, 25);
    }

在这里插入图片描述

GUILayout.Toggle

制作一个开/关切换按钮。

    bool toggleTxt;
    void DrawToggle()
    {
        toggleTxt = GUILayout.Toggle(toggleTxt, "A Toggle text");
    }

在这里插入图片描述

GUILayout.Toolbar

制作一个工具栏。

    int toolbarInt = 0;
    string[] toolbarStrings = { "Toolbar1", "Toolbar2", "Toolbar3" };
    void DrawToolbar()
    {
        toolbarInt = GUILayout.Toolbar(toolbarInt, toolbarStrings);
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值