赞
踩
静态函数 | 描述 |
---|---|
AddCursorRect | 向控件添加自定义鼠标指针。 |
CommandEvent | 创建可以发送到另一个窗口的事件。 |
DrawColorSwatch | 绘制颜色样本。 |
DrawCurveSwatch | 绘制曲线样本。 |
DrawRegionSwatch | 绘制在两条 SerializedProperty 曲线之间具有填充区域的样本。 |
FindTexture | 从源文件名中获取纹理。 |
GetBuiltinSkin | 获取其中一个内置 GUI 皮肤,可以是按参数选择的游戏视图、检视面板或场景视图皮肤。 |
GetFlowLayoutedRects | 在给定区域中按从左到右、从上到下的方式布置字符串项的列表。 |
GetIconForObject | 获取与对象关联的自定义图标。只有 GameObjects 和 MonoScripts 具有关联的自定义图标。 |
GetIconSize | 获取已使用 SetIconSize 设置的大小。 |
GetMainWindowPosition | 返回 Unity 编辑器主窗口的位置。 |
GetObjectPickerControlID | 当前显示的 Object Picker 的 controlID。 |
GetObjectPickerObject | Object Picker 中当前选中的对象。 |
HasObjectThumbnail | 给定的类是否具有针对每个对象的缩略图? |
IconContent | 从具有给定名称的 Unity 内置资源中获取 GUIContent。 |
IsDisplayReferencedByCameras | 检查是否有任何已启用的摄像机可以渲染到特定显示屏。 |
Load | 加载内置资源。 |
LoadRequired | 加载所需的内置资源。 |
LookLikeControls | 使所有 EditorGUI 看起来像常规控件。 |
ObjectContent | 返回具有某个 Object 的名称和图标的 GUIContent 对象。 |
PingObject | 在场景中对对象执行 Ping 操作,就像在检视面板中单击它一样。 |
PixelsToPoints | 从像素空间转换为点空间。 |
PointsToPixels | 从点空间转换为像素空间。 |
QueueGameViewInputEvent | 将输入事件发送到游戏中。 |
SetIconForObject | 设置与 GameObject 或 MonoScript 关联的自定义图标。自定义图标显示在场景视图和检查器中。 |
SetIconSize | 将渲染为 GUIContent 一部分的图标设置为以特定大小渲染。 |
SetMainWindowPosition | 设置 Unity 编辑器主窗口的位置。 |
ShowObjectPicker | 通过代码显示 Object Picker。 |
[MenuItem("Examples/Ping Selected")]
static void Ping()
{
if (!Selection.activeObject)
{
Debug.Log("Select an object to ping");
return;
}
EditorGUIUtility.PingObject(Selection.activeObject);
}
private Texture tex;
...
if (GUILayout.Button("查找法线贴图"))
{
//参数释义
//1. 查找对象的引用
//2. 是否允许查找场景对象
//3. 查找对象名称过滤(比如这里的normal是指文件名称中有normal的会被搜索到)
//4. controlID, 默认写0
EditorGUIUtility.ShowObjectPicker<Texture>(tex, false, "normal", 0);
}
if (GUILayout.Button("Test"))
{
Debug.Log(EditorGUIUtility.currentViewWidth);
Debug.Log(this.position.width);
}
EditorGUIUtility.labelWidth = 50;
EditorGUILayout.TextField("Label", "Text");
静态函数 | 描述 |
---|---|
ClearDefaultParentObject | C从特定场景或活动场景中清除默认父游戏对象。 |
ClearDirty | 清除 target 的“脏”标志。 |
ClearProgressBar | 删除进度条。 |
CollectDeepHierarchy | 收集层级视图中以每个指定对象为根对象的所有对象。 |
CollectDependencies | 计算并返回 roots 中列出的资源所依赖的所有资源的列表。 |
CompressCubemapTexture | 压缩立方体贴图纹理。 |
CompressTexture | 压缩纹理。 |
CopySerialized | 复制 Unity Object 的所有设置。 |
CopySerializedIfDifferent | 将 Unity Object 的所有设置复制到第二个 Object(如果两者不同)。 |
CopySerializedManagedFieldsOnly | 在不同的托管对象之间复制可序列化的字段。 |
CreateGameObjectWithHideFlags | 使用 HideFlags 和指定组件创建游戏对象。 |
DisplayCancelableProgressBar | 显示或更新含有 Cancel 按钮的进度条。 |
DisplayDialog | 此方法显示模态对话框。 |
DisplayDialogComplex | 显示含有三个按钮的模态对话框。 |
DisplayPopupMenu | 显示弹出菜单。 |
DisplayProgressBar | 显示或更新进度条。 |
FocusProjectWindow | 将 Project 窗口置于前面并聚焦该窗口。 |
FormatBytes | 返回有关字节数的文本。 |
GetDialogOptOutDecision | 此方法显示模态对话框,使用户可以选择不再次显示当前对话框。 |
GetDirtyCount | 返回一个整数,指示更改指定对象的序列化属性的次数。 |
GetObjectEnabled | 对象是否已启用(0 表示已禁用,1 表示已启用,-1 表示没有 Enabled 按钮)。 |
InstanceIDToObject | 将实例 ID 转换为对对象的引用。 |
IsDirty | 获取一个布尔值,指示指定对象自上次保存以来是否已更改。 |
IsPersistent | 确定对象是否存储在磁盘中。 |
IsRunningUnderCPUEmulation | 获取一个布尔值。该值指示您的 CPU 是否无法本机执行 Unity 并正在运行模拟版本。 |
IsUnityExtensionsInitialized | 返回一个布尔值,表示 Unity 扩展的初始化状态。 |
IsValidUnityYAML | 如果提供的字符串可以解析为 YAML,则返回 true。 |
NaturalCompare | 仿人类排序。 |
OpenFilePanel | 显示“打开文件”对话框并返回所选的路径名称。 |
OpenFilePanelWithFilters | 显示“打开文件”对话框并返回所选的路径名称。 |
OpenFolderPanel | 显示“打开文件夹”对话框并返回所选的路径名称。 |
OpenPropertyEditor | 打开对象的属性编辑器。 |
RequestScriptReload | Unity 编辑器会在下一帧上异步重新加载脚本程序集。这会重置所有脚本的状态,但是 Unity 不会编译任何自上次编译以来已更改的代码。 |
SaveFilePanel | 显示“保存文件”对话框并返回所选的路径名称。 |
SaveFilePanelInProject | 在项目的 Assets 文件夹中显示“保存文件”对话框并返回所选的路径名称。 |
SaveFolderPanel | 显示“保存文件夹”对话框并返回所选的路径名称。 |
SetCameraAnimateMaterials | 设置此摄像机以启用编辑器中的材质动画。 |
SetCameraAnimateMaterialsTime | 为此摄像机设置渲染时使用的全局时间。 |
SetCustomDiffTool | 设置自定义差异工具设置。 |
SetDefaultParentObject | 设置活动场景的默认父对象。 |
SetDialogOptOutDecision | 此方法显示模态对话框,使用户可以选择不再次显示当前对话框。 |
SetDirty | 将目标对象标记为脏。 |
SetObjectEnabled | 设置对象的启用状态。 |
SetSelectedRenderState | 为此渲染器将场景视图设置为所选的显示模式。 |
UnloadUnusedAssetsImmediate | 卸载未使用的资源。 |
UpdateGlobalShaderProperties | 更新渲染时使用的全局着色器属性。 |
using Unity.VisualScripting;
using Unity.VisualScripting.YamlDotNet.Core.Tokens;
using UnityEditor;
using UnityEngine;
public class EditorGUIExample : EditorWindow
{
[MenuItem("Examples/ProgressBar(")]
static void Init()
{
UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIExample));
window.position = new Rect(0, 0, 150, 60);
window.Show();
}
private float value; //定义进度条填充值
private void OnGUI()
{
if (GUILayout.Button("增加进度")) //手动增加进度
{
value += 0.1f;
value = Mathf.Clamp01(value); //约束value值到0~1
}
EditorUtility.DisplayProgressBar("进度条", "显示信息", value); //显示进度条
if (value == 1)
{
EditorUtility.ClearProgressBar(); //关闭进度条
}
}
}
DisplayDialog
EditorUtility.DisplayDialog("Title", "Message", "ok", "cancel");
DisplayDialogComplex
EditorUtility.DisplayDialogComplex("Title", "Message", "ok", "cancel", "alt");
DisplayPopupMenu
if (GUILayout.Button("对话框"))
{
Event evt = Event.current;
Vector2 mousePos = evt.mousePosition;
EditorUtility.DisplayPopupMenu(new Rect(mousePos.x, mousePos.y, 0, 0), "Assets/", null);
}
OpenFilePanel
private void OnGUI()
{
if (GUILayout.Button("OpenFilePanel"))
{
string path = EditorUtility.OpenFilePanel("png", "", "png");
}
}
OpenFilePanelWithFilters
if (GUILayout.Button("OpenFilePanelWithFilters"))
{
string path = EditorUtility.OpenFilePanelWithFilters("png", "",
new string[] { "Image files", "png,jpg,jpeg", "All files", "*" });
}
OpenFolderPanel
private void OnGUI()
{
if (GUILayout.Button("OpenFolderPanel"))
{
string path = EditorUtility.OpenFolderPanel("Load png Textures", "", "");
}
}
SaveFilePanel
private void OnGUI()
{
if (GUILayout.Button("SaveFilePanel"))
{
var path = EditorUtility.SaveFilePanel(
"Save texture as PNG",
"",
"texture.png",
"png");
}
}
SaveFilePanelInProject
if (GUILayout.Button("SaveFilePanelInProject"))
{
string path = EditorUtility.SaveFilePanelInProject("Save png", "texture.png", "png",
"Please enter a file name to save the texture to");
}
SaveFolderPanel
if (GUILayout.Button("SaveFolderPanel"))
{
string path = EditorUtility.SaveFolderPanel("Save textures to folder", "", "");
}
静态函数 | 描述 |
---|---|
AlignRectToDevice | 将本地空间矩形与像素网格对齐。 |
ExitGUI | 通过抛出 ExitGUIException 来将 GUI 置于这样一种状态:阻止所有后续即时模式 GUI 函数计算 GUI 循环的其余部分。 |
GetControlID | 为控件获取一个唯一的 ID。 |
GetStateObject | 从 controlID 获取状态对象。 |
GUIToScreenPoint | 将一个点从 GUI 位置转换为屏幕空间位置。 |
GUIToScreenRect | 将矩形从 GUI 位置转换到屏幕空间。 |
QueryStateObject | 从 controlID 获取一个现有的状态对象。 |
RotateAroundPivot | 让 GUI 围绕一个点旋转的 Helper 函数。 |
ScaleAroundPivot | 让 GUI 围绕一个点缩放的 Helper 函数。 |
ScreenToGUIPoint | 将一个点从屏幕空间位置转换为 GUI 位置。 |
ScreenToGUIRect | 将矩形从屏幕空间转换到 GUI 位置。 |
静态函数 | 描述 |
---|---|
GetAspectRect | 保留一个具有特定宽高比的矩形布局空间。 |
GetLastRect | 获取 GUILayout 最后用于控件的矩形。 |
GetRect | 保留一个矩形布局空间,以显示某些具有特定样式的内容。 |
EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility都是Unity编辑器中用于UI开发的工具类,但它们的功能和使用场景有所不同。
总结来说,EditorGUIUtility主要用于编辑器界面的UI开发,EditorUtility主要用于编辑器脚本的开发,GUIUtility提供基础的UI组件但需要手动布局,而GUILayoutUtility则提供了自动布局的功能。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1vi5kv7wjb1cc
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。