Unity中GUI、GUILayout、EditorGUI、EditorGUILayout、GUILayoutUtility、EditorGUIUtility区别

Unity中GUI、GUILayout、GUILayoutUtility、EditorGUI、EditorGUILayout、EditorGUIUtility区别

1.解释一下Unity中的编辑器扩展类,分为两组:

  • 在编辑器或者Runtime都能使用,命名空间UnityEngine
    • GUI: ui系统,包括button,lable,toggle等控件
    • GUILayout: 在GUI基础上,控件新增自动布局功能
    • GUILayoutUtility: 对布局类的一些补充,工具类。
  • 只能在编辑器使用,命名空间UnityEditor
    • EditorGUI: 编辑器ui系统,和GUI非常相似,包括button,lable,toggle等控件
    • EditorGUILayout: 在EditorGUI基础上,控件新增自动布局功能
    • EditorGUIUtility: 对EditorGUILayout的一些补充,工具类。

2.GUI和GUILayout的比较

1.使用GUIEditorGUI需要手动设置控件的Rect,位置宽高固定,不能自适应宽高,例如:

GUI.Button(new Rect(0, 0, 100, 100),"btn");
EditorGUI.LabelField(new Rect(0, 0, 100, 100),"label");

2.使用GUILayoutEditorGUILayout生成控件是自动布局,不用设置Rect。例如:

GUILayout.Button("btn");
GUILayout.Label("label");

3.GUI、GUILayout、EditorGUI、EditorGUILayout这4个提供的API非常相似,根据自己需求使用即可,可以混用,建议用Layout自动布局类,如果不满足需求,就使用更加灵活的GUI自行布局。
4.GUILayoutUtility和EditorGUIUtility两个类,是给对应的布局类做补充,里面有一些使用接口可用。

3.介绍几个常用的API

函数名描述
BeginHorizontal开始一个水平组并找回其矩形。
BeginScrollView开始一个自动布局的滚动视图。
BeginVertical开始一个垂直组并找回其矩形。
IntField创建一个用于输入整数的文本字段。。
LabelField生成一个标签字段。(用于显示只读信息。)
PropertyField为 SerializedProperty 生成一个字段。
EditorGUILayout官方文档GUILayout官方文档
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UnityGUIUnity游戏引擎的一个GUI系统,它是一种基于对象的图形用户界面系统,用于在游戏创建交互式的用户界面。它允许开发者创建按钮、文本框、滑块等交互元素,并通过事件和回调函数来处理用户的输入和交互。 UnityGUI的源码提供了UnityGUI系统的实现细节,可以用于了解和学习UnityGUI的工作原理。通过阅读源码,开发者可以理解UnityGUI是如何创建、渲染和处理UI元素的,以及它是如何与游戏场景和其他组件进行交互的。 在UnityGUI的源码,可以找到一些核心的类和函数,比如GUI类、GUILayout类和GUIStyle类等。GUI类提供了一系列静态函数来创建和绘制UI元素,比如按钮、标签和文本框。GUILayout类则提供了一组函数来实现自动布局,以便更方便地创建复杂的UI布局。GUIStyle类则包含了一些样式信息,比如字体、颜色和边框等。 通过查看源码,可以了解到UnityGUI的绘制原理和性能优化技巧。比如,可以看到UnityGUI是如何使用批处理技术将多个UI元素合并为一次渲染调用,以减少渲染开销。还可以了解到UnityGUI是如何处理用户的输入事件,并通过回调函数来实现相应的响应。 总之,UnityGUI的源码是一个宝贵的学习资源,可以帮助开发者更好地理解和使用UnityGUI系统。通过深入研究源码,开发者可以从汲取经验和技巧,提高UI设计和开发的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值