• [原]Unity3D深入浅出


    Unity的GUI类提供了丰富的界面控件,通过组合这些控件,完成和用户交互的界面。

    • Lable:绘制文本和图片
    • Box:绘制一个图形框
    • Button:绘制一个响应单击事件的按钮
    • RepeatButton:绘制一个处理连续按下事件的按钮
    • TextField:绘制一个单行文本输入框
    • PasswordField:绘制一个密码输入框
    • TextArea:绘制一个多行文本输入框
    • Togle:绘制一个开关
    • Toolbar:绘制一个工具条
    • SelectionGrid:绘制一组网格按钮
    • HorizontalSlider:绘制一个水平方向的滑动条
    • VerticalSlider:绘制一个垂直方向的滑动条
    • HorizontalScrollbar:绘制一个水平方向的滚动条
    • VerticalScrollbar:绘制一个垂直方向的滚动条
    • Window:绘制一个窗口,可以用于放置控件。

    GUI代码需要在OnGUI函数中调用才能绘制,如果放在Update函数中会报错。

    GUI控件一般需要传入一个Rect参数来指定屏幕的绘制区域。例如Rect(20,40,100,60),则绘制在离屏幕左上角坐标(20,40)的位置,宽度为100,高度为60。

    注意:在UnityGUI中,屏幕坐标系以左上角为原点(0,0),右下角为(Screen.Widht,Screen.Height)

    GUILayout自动布局:

    在unity中GUI控件的布局方式有两种,一种为固定布局,即在绘制控件时传入的位置参数;另外一种就是GUILayout自动布局,这种方式一般用于开发者不太在乎控件的精确位置的情况下。

    如果想使用自动布局,绘制时使用GUILayout来绘制控件。

    示例:

    void OnGUI(){
        //固定布局
        GUI.Button(new Rect(20,40,100,60),"GUI button");
        //自动布局
        GUILayout.Button("I am an automatic layout button")
    }

    区域Area:

    有时候使用自动布局,当控件数量过多的时候则会显得摆放得太杂乱,这时候可以使用GUILayout.BeginArea和GUILayout.EndArea来指定自动布局要摆放的区域,对显示区域大致划分。

    示例:

    void OnGUI()
    {
       GUILayout.BeginArea(new Rect(Screen.width/2,Screen.height/2,200,200);
       //在这之间绘制控件
       GUILayout.EndArea();
    }

    另外还有GUILayer.BeginHorizontal和GUILayer.EndHorizontal,来设置水平布局。

    GUILayout.BeginVertical和GUILayer.EndVertical,类设置垂直布局。

  • 相关阅读:
    注释代码片段
    更新docker时间-需要重启docker
    mysql随机查询若干条数据的方法
    Linux 块设备驱动 (一)
    Linux SD/MMC/SDIO驱动分析
    【转】Alsa音频编程【精华】
    goahead webserver源码分析
    【转】Linux系统调用列表
    Arm Linux系统调用流程详细解析
    Socket 相关的知识
  • 原文地址:https://www.cnblogs.com/tonge/p/3935065.html
Copyright © 2020-2023  润新知