找回密码
 立即注册
查看: 724|回复: 0

[笔记] Unity编辑器拓展基础知识总结

[复制链接]
发表于 2021-1-20 13:41 | 显示全部楼层 |阅读模式
前言

从事Unity编辑器拓展也有一段时间了,该记录一下常见的知识点了,也方便自己日后查阅
结构

Unity编辑器拓展主要分为3大类
    UnityEngine.GUI:可用于编辑器和运行时,需要自行计算RectUnityEditor.EditorGUI:只可用于编辑器,需要自行计算RectUnityEditor.EditorGUILayout:只可用于编辑器,自动计算Rect
其中UnityEditor.EditorGUILayout基于UnityEditor.EditorGUI实现
常见类

Rect

这个类型在编辑器拓展中十分常见,官方解释为
A 2D Rectangle defined by X and Y position, width and height.
一个由X,Y坐标,width,height宽高定义的2D矩形
其以左上角为坐标原点,X往右递增,Y往下递增
更加详细介绍可参照:Unity Rect官方文档
GUIContent

GUIContent定义了一个GUI Item内容,最完整的构造函数如下
  1. //构建同时包含文本,图片和定义的tooltip的GUIContent。 当用户将鼠标悬停在其上方时,全局GUI.tooltip会被设置为这个tooltip
  2. public GUIContent(string text, Texture image, string tooltip)
复制代码
GUIStyle

一个GUIStyle定义了一个GUI Item的样式,最完整的构造函数如下
  1. public GUIStyle(GUIStyle other)
复制代码
但是我们最常用的还是string的隐式转换
  1. public static implicit operator GUIStyle(string str)
复制代码
常用GUIStyle样式可以从Unity常用GUIStyle收集查看
常用编辑器拓展知识

菜单栏拓展
  1. [MenuItem("TargetCatalogName")]
复制代码
Inspector拓展
  1. [CustomEditor(typeof(TargetClassName))]
复制代码
双击资源回调
  1. [UnityEditor.Callbacks.OnOpenAsset(TargetCallBackOrder)]
复制代码
UnityEditor生命周期
  1. UnityEditor.EditorApplication
复制代码
Undo/Redo
  1. UnityEditor.Undo
复制代码
ScriptableObject序列化相关

    如果一个ScriptableObject(下面简称为SO)的HideFlag设置为HideInHierarchy,那么LoadAllAssetRepresentationsAtPath会将其忽略如果不将SO保存为Asset,运行游戏后将会被GC,从而丢失引用
资源管理相关
  1. //添加子Asset
  2. UnityEditor.AssetDatabase.AddObjectToAsset(subAsset, mainAsset);
复制代码
保存资源时,保险起见应当进行
    EditorUtility.SetDirtyAssetDatabase.SaveAssetsAssetDatabase.Refresh
TreeView

Unity Tree View官方文档




Unity 折叠树





https://blog.csdn.net/e29516631/article/details/52370575
这个特性其实EditorGUILayout.BeginFoldoutHeaderGroup也可与之对位
AdvancedDropdown

Unity AdvancedDropdown官方文档




其他资源

Unity Editor中所有图标,包含所有Unity Editor中图标,方便使用
Unity开源的CSharp部分,可在其中找到自己想要实现的Editor样式源码
Unity编辑器拓展手册,超全,日文版,但是内容十分详尽
总结

Unity编辑器拓展知识点十分琐碎,是一个不断积累的过程,共勉。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-12-23 07:38 , Processed in 0.094504 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表