[Unity] Unity3D 学习从简单开始-GUILayout探索

查看:868 |回复:3 | 2017-3-1 15:10:03

您需要 登录 才可以下载或查看,没有账号?注册

x
  今天接着上一篇GUI的分享,也简单讲一下GUILayout的实际使用。
其实说到GUI和GUILayout的关系,它们有着异曲同工之处。
好吧!废话不多讲!我们就直奔主题吧!

它们的区别:
  (1)它们一样是游戏的界面的布局大神,但是使用GUI绘制界面时,需要设置控件整体显示的区域Rect()方法) ,使用极其的不灵活,一般还会随着内容长度的变化发生改变,最后便会直接会影响的到显示的效果,甚至还会造成区域重叠的现象;而GUILayout来制作界面,它会自动帮我计算控件需要显示的区域,保证他们不会重叠。
   
  (2)从某种意义上来说相对于GUI,GUILayout使用起来更方便。

GUILayout 官方文档:http://www.ceeger.com/Script/GUILayout/GUILayout.html
1.新建一个unity3d 测试项目,新建GUILayoutTest.cs组件,考虑把GUILayout常用的函数显示出来;
1.png

2. GUILayoutTest.cs 组件代码如下;
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;

  4. public class GUILayoutTest : MonoBehaviour {


  5.         public string passwordToEdit = "My Password";
  6.         public string stringToEdit = "Hello World\nI've got 2 lines...";
  7.         public string stringToEditField = "Hello World";
  8.         private bool toggleTxt = false;

  9.         public int toolbarInt = 0;
  10.         public string[] toolbarStrings = new string[] {"Toolbar1", "Toolbar2", "Toolbar3"};

  11.         public float vSbarValue;
  12.         public float vSliderValue = 0.0F;
  13.         public Rect windowRect = new Rect(300, 400, 120, 50);

  14.         void OnGUI ()
  15.         {
  16.                 //1.Label :显示文本内容
  17.                 GUILayout.Label ("This is the text string for a Label Control");
  18.                 //2.Button :显示一个菜单按钮
  19.                 GUILayout.Button ("This is a Button");
  20.                 //3.Box :绘制纹理
  21.                 GUILayout.Box("This is a title");
  22.                 //4.PasswordField :显示密码框
  23.                 passwordToEdit = GUILayout.PasswordField(passwordToEdit, "*"[0], 25);
  24.                 //5.RepeatButton :重复按钮
  25.                 GUILayout.RepeatButton("This is a RepeatButton");
  26.                 //6.TextArea :显示多行文本
  27.                 stringToEdit = GUILayout.TextArea(stringToEdit, 200);
  28.                 //7.TextField :显示文本字段
  29.                 stringToEdit = GUILayout.TextField (stringToEditField, 25);
  30.                 //8.Toggle :开关按钮
  31.                 toggleTxt = GUILayout.Toggle( toggleTxt, "A Toggle text");
  32.                 //9.Toolbar :工具栏
  33.                 toolbarInt = GUILayout.Toolbar( toolbarInt, toolbarStrings);
  34.                 //10.tooltip :工具提示
  35.                 GUILayout.Button(new GUIContent("Click me", "This is the tooltip"));
  36.                 GUILayout.Label(GUI.tooltip);
  37.                 //11.VerticalScrollbar :垂直滚动条
  38.                 vSbarValue = GUILayout.VerticalScrollbar (vSbarValue, 1.0F, 10.0F, 0.0F);
  39.                 //12.VerticalSlider :垂直滑动条
  40.                 vSliderValue = GUILayout.VerticalSlider (vSliderValue, 10.0F, 0.0F);

  41.         }
  42. }
点击此处复制文本

3.当然上面我只列举一部分主要常用的函数,如果大家感兴趣的话,可以继续深入探讨。例如改变布局整体的布局开始创建位置  GUILayout.BeginArea (new Rect (200,200,100,100))等等;


  4.最后直接在Unity的编辑器运行查看效果!
4.png

    学习交流群:575561285

2017-3-1 15:10:03  
 赞 赞 0

使用道具 登录

3个回答,把该问题分享到群,邀请大神一起回答。
2#
资源甚好,发帖艰辛,且阅且珍惜!
回复 收起回复
2017-3-1 18:01:16   回复
 赞 赞 0

使用道具 登录

3#
涨姿势了,太感谢了,楼主好人!
回复 收起回复
2017-3-2 08:29:55   回复
 赞 赞 0

使用道具 登录

4#
感谢分享.
回复 收起回复
2018-7-19 20:52:35   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

Unity3D技术手机游戏引擎手游引擎
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表