当前位置:网站首页>Unity editor expansion - the framework and context of unity imgui
Unity editor expansion - the framework and context of unity imgui
2022-07-03 08:26:00 【T.D.C】
Little knowledge
- Unity Based on IMGUI The design idea of ui Frame and use it to make UnityEditor
- In the early Unity Users of ui Also mostly used IMGUI Realization
- IMGUI Performance ratio ngui and ugui low , No one should use the new project now ngui 了
- Now? Unity A new ui programme , Integrate the past unity Officially supported ui
- I guess I'll leave the world ui The framework update is not far away , Another wave of technological progress
Unity IMGUI Framework
- stay Monobehaviour perhaps Window Defined in subclasses OnGUI Method , stay OnGUI Method can be used Unity Of api establish ui
- make carbon copies Editor Class OnInspectorGUI The method has a similar effect , This is often used to customize a Mono Script editor
Core class : create a window 、 Control , Make a layout , Modify the style
- EditorWindow, The custom window must be EditorWindow Subclasses of , Use GetWindow establish
- GUI, There is no automatic layout , You can create controls , You can set to get GUI The state of
- GUILayout, There is automatic layout , You can create controls
- GUILayoutUtility, Yes GUILayout expand
- EditorGUI, More functions GUI
- EditorGUILayout, More functions GUILayout
- EditorGUIUtility, Yes GUILayout Development of
- Handles, Painting in the scene 3D ui
- What does auto layout mean
- You can specify scalable size information to make the control layout automatically
- Use GUILayout Method creation under GUILayoutOption To set layout properties
- Create in the editor GUISkin, When you create a control, you can change the style by passing it to the control
example
- More examples can be found in the resources below unity Official documents found
using UnityEditor;
using UnityEngine;
namespace DC.DCIMGUIBox
{
public class LayoutAndAreaWindow_01 : EditorWindow
{
[MenuItem("DC/IMGUI/LayoutAndAreaWindow_01")]
public static void Open()
{
var window = GetWindow<LayoutAndAreaWindow_01>();
window.minSize = new Vector2(800, 600);
}
public void OnGUI()
{
GUILayout.BeginArea(new Rect(0, 0, 200, 200));
EditorGUI.DrawRect(new Rect(0, 0, 100, 100), Color.blue);
if (Event.current.type == EventType.MouseDown)
{
Debug.Log("box a" + Event.current.mousePosition);
}
GUILayout.EndArea();
GUILayout.BeginArea(new Rect(210, 0, 200, 200));
EditorGUI.DrawRect(new Rect(0, 0, 100, 100), Color.red);
if (Event.current.type == EventType.MouseDown)
{
Debug.Log("box b" + Event.current.mousePosition);
}
GUILayout.EndArea();
}
}
}
Reference material
- https://docs.unity3d.com/Manual/GUIScriptingGuide.html
边栏推荐
- Base64 and base64url
- P2704 [noi2001] artillery position (shape pressure DP)
- Conversion between string and int types in golang
- Flex flexible box layout
- P1896 [scoi2005] non aggression (shape pressure DP)
- Installation of PHP FPM software +openresty cache construction
- redis集群系列四
- Sequence of map implementation classes
- Golang中删除字符串的最后一个字符
- Multi traveling salesman problem -- overview of formula and solution process
猜你喜欢
matlab神经网络所有传递函数(激活函数)公式详解
Dealing with duplicate data in Excel with xlwings
C#课程设计之学生教务管理系统
Mxone Pro adaptive 2.0 film and television template watermelon video theme apple cmsv10 template
Unity change default editor
Puhua PLM empowers the whole scene product lifecycle management and helps the enterprise digital transformation of the main line of products
Basic operation and process control 2
Base64和Base64URL
CLion-Toolchains are not configured Configure Disable profile问题解决
数据库应用技术课程设计之商城管理系统
随机推荐
What does (+) in Oracle mean
796 · unlock
Initial unity
数据的存储
P1896 [scoi2005] non aggression (shape pressure DP)
Golang string segmentation, substitution and interception
How to establish rectangular coordinate system in space
Pit & ADB wireless debugging of vivo real machine debugging
使用base64编码传图片
Yolo series --- xml2txt script
Some understandings of 3dfiles
Osgearth topographic shading map drawing
Transplantation of freetype Library
[public key cryptography] ECC elliptic cryptosystem (implementing ElGamal encryption method)
Why can void * be a general pointer
P1596 [USACO10OCT]Lake Counting S
Use filechannel to copy files
UE4 call DLL
Golang的range
Golang url的编码和解码