Unity有两种UI大类

描述
UGUI 主要用于场景内UI,有可视化编辑器Canvas,适用美术布局
IMGUI 即时模式UI,既可用于场景内,也可用于编辑器面板,没有可视化工具,适用程序代码布局

UGUI需要在场景中,通过菜单 GameObject | UI | … 子菜单创建
创建之后会自动生成Canvas对象
在这里插入图片描述
通过Inspector面板可设置UI事件处理,比如Button的OnClick事件
在这里插入图片描述
可以执行指定对象的MonoBehavior的行为

IMGUI又分四种类型

命名空间 适用场合 布局规则
GUI UnityEngine 场景内 指定位置
GUILayout UnityEngine 场景内 Layout自动布局
EditorGUI UnityEditor 编辑器面板,增加了编辑器相关的控件,比如 指定位置
EditorGUILayout UnityEditor 编辑器面板 Layout自动布局

即时模式UI代码位置
EditorWindow.OnGUI
Editor.OnSceneGUI
Editor.OnInspectorGUI
MonoBehavior.OnGUI

public class GUITest : MonoBehaviour {
    void OnGUI () {
        // 固定布局
        GUI.Button (new Rect (25,25,100,30), "I am a Fixed Layout Button");
        // 自动布局
        GUILayout.Button ("I am an Automatic Layout Button");
    }
}

UGUI参考
https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/UICanvas.html
GUI参考:
https://docs.unity3d.com/Manual/gui-Basics.html
EditorGUI参考:
https://docs.unity3d.com/Manual/editor-PropertyDrawers.html

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐