1、Label:标签控件,可以在游戏中用来展示文本字符串信息,不仅可以写字还可以贴图片。

2、Button:按钮控件,一般分图片按钮和普通的按钮,还有一个连续按钮RepeatButton注意,这个在WebForm里面是没有的。

Ps:用GUI.Button(new Rect(10,200,70,30),"文字按钮" )来添加按钮时这个方法是有返回值的bool类型;

3、TextField:主要用于监听用户输入的信息。

Ps:GUI.TextField(),返回用户输入的字符串信息,GUI.PasswordField()

4、ToolBar:用于创建工具栏,以Tab页面形式来展示,选择任意一项后可返回所选的ID。

5、Slider控件

  基本知识:Slider控件由滑块与滑动条组成;按展示方式划分为:水平滑动条(HorizontalSlider [ˌhɔriˈzɔntəl] adj.水平的,卧式的;地平线的),垂直滑动条(VerticalSlider[ˈvɜ:tɪkl]adj. 垂直的,竖立的 ),二者之间的用法基本相同;

  作  用:常使用滑动条来调节音量或者颜色等

6、ScrollView控件 =>相当于webform中的滚动条

  使用条件:若游戏界面中的GUI控件过多,超出了屏幕的显示范围,就需要使用ScrollView控件来完成它的展示效果。

7、群视图:GroupView控件

  1、群组视图(GroupView控件)可将多个视图全部放在一个群组当中。将视图添加进群组当中后,群组中任何视图的坐标都是相对坐标,它是相对群组视图左上角的坐标。

   2、使用GUI.BeginGroup()方法可以创建一个群组视图,但是必须以GUI.EndGroup()方法结束群组视图

8、窗口

  窗口在游戏开发中并不陌生,所有视图都需要依赖窗口来显示,我们可以把窗口理解为视图的父类。 游戏视图,它们都属于窗口的子类。游戏界面可以由若干个窗口组成,窗口又由若干个视图组成。

9、GUI Skin 为控件添加漂亮的皮肤

  在Project视图中点击“Create”→“GUI Skin”菜单项,创建一个GUI Skin。使用GUI Skin,可以修改任何系统提供的控件皮肤。

 

 Font:可设置系统字体或者自定义字体。
 Box:可设置盒子的显示皮肤。
 Button:可设置按钮的显示皮肤。
 Toggle:可设置选择框的显示皮肤。['tɒɡl]
 Label:可设置文本框的显示皮肤。
 Text Field:可设置输入框的显示皮肤。
 Text Area:可设置多行输入框的显示皮肤。
 Window:可设置窗口的显示皮肤。
 Horizontal Slider:可设置水平滚动条的显示皮肤。[ˌhɔriˈzɔntəl] 
 Horizontal Slider Thumb:可设置水平滚动条上滑动块的显示皮肤。['slaɪdə(r)]n. 滑雪者,滑冰者;
 Vertical Slider:可设置垂直滑动条的显示皮肤。[ˈvɜ:tɪkl]
 Vertical Slider Thumb:可设置垂直滑动条上滑动块的显示皮肤。[θʌm]n. 拇指;(手套的)拇指部份
 Horizontal Scrollbar:可设置水平滚动条的显示皮肤。
 Horizontal Scrollbar Thumb:可设置水平滚动条上滑块的显示皮肤。
 Horizontal Scrollbar Left Button:可设置水平滚动条左边按钮的显示皮肤。[skrəʊl]
 Horizontal Scrollbar Right Button:可设置水平滚动条右边按钮的显示皮肤。
 Vertical Scrollbar:可设置垂直滚动条的显示皮肤。
 Vertical Scrollbar Thumb:可设置垂直滚动条上滑块的显示皮肤。
 Vertical Scrollbar Up Button:可设置垂直滚动条上边按钮的显示皮肤。
 Vertical Scrollbar Down Button:可设置垂直滚动条下边按钮的显示皮肤。
 Scroll View:可设置滚动视图的显示皮肤。
 Custom Styles:自定义风格显示皮肤。
 Settings:一些其他设置。

学习宣老师的《Unity3D游戏开发》,老师用到是js写的,我这边C# 经运行暂时么发现问题

  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class Csharp3_1 : MonoBehaviour
  5. {
  6.  
  7. #region 只有公有变量才可以在编辑器中以拖曳对象或输入的形式赋值。
  8. /// <summary>
  9. /// 接收外部赋值字符串
  10. /// </summary>
  11. public string str = string.Empty;
  12. /// <summary>
  13. /// 接收外部赋值贴图
  14. /// </summary>
  15. public Texture imageTexture;
  16. #endregion
  17.  
  18. /// <summary>
  19. /// 贴图宽度
  20. /// </summary>
  21. private int imageWidth;
  22. /// <summary>
  23. /// 贴图高
  24. /// </summary>
  25. private int imageHeight;
  26. /// <summary>
  27. /// 当前屏幕宽度
  28. /// </summary>
  29. private int screenWidth;
  30. /// <summary>
  31. /// 当前屏幕高度
  32. /// </summary>
  33. private int screenHeight;
  34.  
  35. //时间计数器
  36. private int frameTime;
  37.  
  38. public Texture2D buttonTexture;
  39.  
  40. #region TextField
  41. private string userName;
  42. private string pwd;
  43. private string message;
  44. #endregion
  45.  
  46. #region ToolBar
  47.  
  48. //工具栏选择按钮的ID
  49. private int sltID;
  50.  
  51. //工具栏显示按钮的字符串
  52. private string[] barResource;
  53.  
  54. //选择按钮是否被按下
  55. private bool sltToggle0, sltToggle1;
  56. #endregion
  57.  
  58. #region 5、Slider
  59. //定义成公共的,否则滚动条无法拖动
  60. public float verticalValue = 0.0f;//垂直、纵向滑动条【ˈvə:tikəl]
  61. public float horizontalValue = 0.0f;//横向滑动条 [ˌhɔriˈzɔntəl]
  62. #endregion
  63.  
  64. #region 6 ScrollView
  65. public Vector2 scrollPostion2;
  66. #endregion
  67.  
  68. #region 7 GroupView
  69. //贴图
  70. public Texture2D texture1;
  71. public Texture2D texture2;
  72. #endregion
  73.  
  74. #region 8窗口
  75. //默认窗口位置
  76. Rect window1 = new Rect(, , , );
  77. Rect window2 = new Rect(, , , );
  78. #endregion
  79.  
  80. #region 9GUISkin
  81. public GUISkin guiSkin;//自定义皮肤
  82. private bool isSelect = false;//单选控件是否被选中
  83. public Rect rect = new Rect(, , , );//拖动窗口的位置
  84. public string guiString = "请输入文字";
  85. #endregion
  86.  
  87. // Use this for initialization
  88. /// <summary>
  89. /// 该方法只执行一次,所以需要将初始化的相关代码都放在Start()方法中
  90. /// </summary>
  91. void Start()
  92. {
  93. ////得到屏幕宽高
  94. screenWidth = Screen.width;
  95. screenHeight = Screen.height;
  96.  
  97. ////得到图片宽高
  98. imageHeight = imageTexture.height;
  99. imageWidth = imageTexture.width;
  100.  
  101. str = "请您点击按钮";
  102.  
  103. #region TextField
  104. userName = "请输入您的姓名";
  105. pwd = "请输入密码";
  106. message = "请输入正确的用户名及密码!";
  107.  
  108. #endregion
  109.  
  110. #region ToolBar
  111.  
  112. sltID = ;
  113. barResource = new string[] { "第一个工具栏", "第二个工具栏", "第三个工具栏", "第四个工具栏" };
  114. sltToggle0 = false;
  115. sltToggle1 = false;
  116.  
  117. #endregion
  118.  
  119. #region 6 ScrollView
  120. //初始化滚动条位置
  121. scrollPostion2 = new Vector2(, );
  122. #endregion
  123.  
  124. }
  125.  
  126. // Update is called once per frame
  127. void Update()
  128. {
  129.  
  130. }
  131. /// <summary>
  132. /// 界面绘制方法,所有GUI的绘制都需要在这个方法中实现
  133. /// </summary>
  134. private void OnGUI()
  135. {
  136. //将文字内容显示在屏幕中
  137. //GUI.Label(new Rect(100, 10, 100, 30), str);
  138. //GUI.Label(new Rect(100, 40, 100, 30), "当前屏幕宽:" + screenWidth);
  139. //GUI.Label(new Rect(100, 70, 100, 30), "当前屏幕高:" + screenHeight);
  140. ////将贴图显示在屏幕中
  141. //GUI.Label(new Rect(100, 100, imageWidth, imageHeight), imageTexture);
  142.  
  143. #region Button
  144. //if (GUI.Button(new Rect(10, 50, buttonTexture.width, buttonTexture.height), buttonTexture))
  145. //{
  146. // //点击按钮修改提示信息
  147. // str = "您点击了图片按钮";
  148. //}
  149.  
  150. ////设置按钮中文字的颜色
  151. //GUI.color = Color.blue;
  152. ////设置按钮的背景色
  153. //GUI.backgroundColor = Color.red;
  154. //if (GUI.Button(new Rect(10, 200, 70, 30), "文字按钮"))
  155. //{
  156. // //点击按钮修改提示信息
  157. // str = "您点击了文字按钮";
  158. //}
  159.  
  160. //GUI.color = Color.yellow;
  161. ////设置按钮的背景色
  162. //GUI.backgroundColor = Color.white;
  163.  
  164. //if (GUI.RepeatButton(new Rect(10, 250, 100, 30), "按钮按下中"))
  165. //{
  166. // //点击按钮修改提示信息
  167. // str = "按钮按下中的时间:" + frameTime;
  168. // frameTime++;
  169. //}
  170. #endregion
  171.  
  172. #region TextField
  173.  
  174. //GUI.Label(new Rect(10,10,Screen.width,40),message );
  175. //if (GUI.Button(new Rect(10,120,100,50),"登录" ))
  176. //{
  177. // message = "您输入的用户名为:" + userName + ";您输入的密码为:" + pwd;
  178. //}
  179.  
  180. //GUI.Label(new Rect(10,40,50,30),"用户名:" );
  181. //GUI.Label(new Rect(10,80,50,30),"密 码:" );
  182.  
  183. //GUI.TextField(new Rect(70, 40, 200, 30), userName, 10);
  184. //GUI.PasswordField(new Rect(70, 80, 200, 30), pwd , '*' ,12);
  185.  
  186. #endregion
  187.  
  188. #region ToolBar
  189.  
  190. //var oldSltID = sltID;
  191. ////重新计算本次工具栏选择的ID
  192. //sltID = GUI.Toolbar(new Rect(10, 10, barResource.Length*100, 30), sltID, barResource);//默认选择哪个
  193. ////如果两次选择的是不同的工具栏,将选择按钮全部释放掉
  194. //if (oldSltID!=sltID)
  195. //{
  196. // sltToggle0 = false;
  197. // sltToggle1 = false;
  198. //}
  199. ////根据工具栏选择的ID显示不同的信息
  200. //switch (sltID)
  201. //{
  202. // case 0:
  203. // sltToggle0 = GUI.Toggle(new Rect(10, 50, 150, 30), sltToggle0, "第一个工具栏单项选择——1");
  204. // sltToggle0 = true;//是否选中
  205. // sltToggle1 = GUI.Toggle(new Rect(10, 80, 150, 30), sltToggle1, "第一个工具栏单项选择——2");
  206. // break;
  207. // case 1:
  208. // sltToggle0 = GUI.Toggle(new Rect(10, 50, 150, 30), sltToggle0, "第二个工具栏单项选择——1");
  209. // sltToggle1 = GUI.Toggle(new Rect(10, 80, 150, 30), sltToggle1, "第二个工具栏单项选择——2");
  210. // break;
  211. // case 2:
  212. // sltToggle0 = GUI.Toggle(new Rect(10, 50, 150, 30), sltToggle0, "第三个工具栏单项选择——1");
  213. // sltToggle1 = GUI.Toggle(new Rect(10, 80, 150, 30), sltToggle1, "第三个工具栏单项选择——2");
  214. // break;
  215. // case 3:
  216. // sltToggle0 = GUI.Toggle(new Rect(10, 50, 150, 30), sltToggle0, "第四个工具栏单项选择——1");
  217. // sltToggle1 = GUI.Toggle(new Rect(10, 80, 150, 30), sltToggle1, "第四个工具栏单项选择——2");
  218. // break;
  219. //}
  220. #endregion
  221.  
  222. #region 5 Slider
  223. //verticalValue = GUI.VerticalSlider(new Rect(25, 25, 30, 100), verticalValue, 100, 0);//计算滑动进度
  224. //horizontalValue = GUI.HorizontalSlider(new Rect(50, 25, 100, 30), horizontalValue, 0.0f, 100.0f);
  225. //GUI.Label(new Rect(10, 150, Screen.width, 30), "纵向滑动条当前进度:" + verticalValue + "%");
  226. //GUI.Label(new Rect(10, 180, Screen.width, 30), "横向滑动条当前进度向滑动条当前进度:" + horizontalValue + "%");
  227. #endregion
  228.  
  229. #region 6 ScrollView
  230. ////开始滚动视图
  231. //Vector2 vector2 = GUI.BeginScrollView(new Rect(0, 0, 200, 200), scrollPostion2, new Rect(0, 0, Screen.width, 300), true, true);
  232. //GUI.Label(new Rect(100,40,Screen.width,30),"测试滚动视图,测试滚动视图,测试滚动视图,测试滚动视图。" );
  233. ////结束滚动视图
  234. //GUI.EndScrollView();
  235. #endregion
  236.  
  237. #region 7GroupView
  238. ////开始这个群组
  239. //GUI.BeginGroup(new Rect(10, 50, 200, 400));//创建一个群组视图,但是必须以GUI.EndGroup()方法结束群组视图
  240. ////显示贴图,坐标为相对群组的点(10,50)的坐标
  241. //GUI.DrawTexture(new Rect(10,20,texture1.width,texture1.height),texture1 );
  242. ////标签提示信息
  243. //GUI.Label(new Rect(10, 150, 100, 40), "群组视图1");
  244. ////按钮
  245. //GUI.Button(new Rect(10, 190, 100, 40), "按钮1");
  246. ////结束这个群组
  247. //GUI.EndGroup();
  248.  
  249. ////开始第二个群组 同上
  250. //GUI.BeginGroup(new Rect(300,0,500,400));
  251. //GUI.DrawTexture(new Rect(10,20,texture2.width,texture2.height),texture2 );
  252. //GUI.Label(new Rect(10, 150, 100, 40), "群组视图2");
  253. //GUI.Button(new Rect(10, 190, 100, 40), "按钮2");
  254. //GUI.EndGroup();
  255. #endregion
  256.  
  257. #region 8窗口
  258.  
  259. //GUI.Window(1, window1, OneWindow, "我是第一个窗口");
  260. //GUI.Window(2, window2, TwoWindow, "我是第二个窗口");
  261.  
  262. #endregion
  263.  
  264. #region 9GUISkin
  265.  
  266. GUI.skin = guiSkin;//设置GUI皮肤为自定义皮肤
  267. GUI.Button(new Rect(, , , ), "自定义按钮");
  268. isSelect = GUI.Toggle(new Rect(, , , ), isSelect, "单选按钮");////单项选择
  269. guiString = GUI.TextField(new Rect(, , , ), guiString, );//输入框
  270. rect = GUI.Window(, rect, GuiWindow, "GUI窗口");//注册窗口
  271.  
  272. #endregion
  273. }
  274. /// <summary>
  275. /// 窗口1
  276. /// </summary>
  277. /// <param name="id"></param>
  278. private void OneWindow(int id)
  279. {
  280. GUI.Box(new Rect(, , , ), "这个窗口的ID是:" + id);
  281. if (GUI.Button(new Rect(, , , ), "普通按钮1"))
  282. {
  283. Debug.Log("窗口ID = " + id + "按钮被点击");
  284. }
  285. }
  286. /// <summary>
  287. /// 窗口2
  288. /// </summary>
  289. /// <param name="id"></param>
  290. private void TwoWindow(int id)
  291. {
  292. GUI.Box(new Rect(, , , ), "这个窗口的ID是:" + id);
  293. if (GUI.Button(new Rect(,,,),"普通按钮2" ))
  294. {
  295. Debug.Log("窗口ID = " + id + "按钮被点击");
  296. }
  297. }
  298. /// <summary>
  299. /// 9GUI窗口
  300. /// </summary>
  301. /// <param name="id"></param>
  302. private void GuiWindow(int id)
  303. {
  304. GUI.DragWindow();//创建一个可以自由拖动的窗口
  305. GUI.Button(new Rect(, , , ), "拖动的窗口按钮");
  306. }
  307. }

Unity3D笔记六 GUI游戏界面的更多相关文章

  1. 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9334121 作者:七十一雾央 新浪微博:http:/ ...

  2. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  3. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  4. Python学习笔记六

    Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime ti ...

  5. Typescript 学习笔记六:接口

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  6. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

  7. python3.4学习笔记(六) 常用快捷键使用技巧,持续更新

    python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...

  8. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

  9. 【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

随机推荐

  1. windows 搭建 subversion+TortoiseSVN

    1.版本 (a)Apache 2.2.25:httpd-2.2.25-win32-x86-no_ssl.msi (b)Subversion:Setup-Subversion-1.8.5.msi (c) ...

  2. table获取checkbox是否选中的几种方法

    function test() { $(".table tbody tr").find("td:first input:checkbox").each(func ...

  3. 15款最好的 jQuery 网格布局插件

    如今,大多数网站设计要靠网格系统和布局,这能够提供给设计人员一个方便的途径来组织网页上的内容.网格的设计最常见于报纸和杂志的版面,由文字和图像构成的列组成. 这篇文章给大家分享精心挑选的15款最佳的 ...

  4. 关于Cocos2d-x程序运行时候提示关闭程序的框框的解决方法

    1.这个情况是资源没有被加载的表现 如果AppDelegate.cpp里面没有文件索引的语句 FileUtils::getInstance()->addSearchPath("res& ...

  5. Ubuntu之命令壁纸

  6. 【转】7Z命令行解压缩

    7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <co ...

  7. 下面属于javascript对象的有:( )

    下面属于javascript对象的有:( ) A. Window B. Document C. Form D. String E. Navigator 解答:ACE

  8. 使用 const 提高函数的健壮性

    使用 const  提高函数的健壮性 看到 const 关键字,C++程序员首先想到的可能是 const 常量.这可不是良好的条件 反射.如果只知道用 const 定义常量,那么相当于把火药仅用于制作 ...

  9. Swing组件都采用MVC设计模式

    Swing组件都采用MVC(Model-View-Controller,既模型-视图-控制器)设计模式,从而可以实现GUI组件的显示逻辑和数据逻辑的分离,允许程序员自定义Render来改变GUI组件的 ...

  10. Javascript农历与公历相互转换

    /**用法 * Lunar.toSolar(2016, 6, 3); 农历转化公历 * Lunar.toLunar(2016, 7, 6); 公历转化农历 */ var Lunar = { MIN_Y ...