
Unity编辑器扩展
文章平均质量分 57
Unity编辑器扩展
Hello Bug.
记录一点点
展开
-
Unity编辑器扩展——ReorderableList
我们定义一个数组或列表,默认是这样显示的这样显示有几个缺点——无法改表元素的顺序——如果添加一个元素,需要增加填写size的数值——如果要删除其中一个元素,非常麻烦ReorderableList可以让列表或数组在Inspector面板显示得更人性化一些。原创 2022-09-14 16:34:30 · 3416 阅读 · 0 评论 -
Unity编辑器扩展——SerializedObject
在Unity编辑器中,所有对象(UnityEngine.Object)都会被转换为SerializedObject并进行处理。当我们在Inspector中编辑组件的值时,其实不是在编辑Component组件的实例,而是在编辑SerializedObject的实例。原创 2022-09-05 20:14:25 · 2437 阅读 · 0 评论 -
Unity编辑器扩展——自动生成UI界面脚本
对于面板赋值或Find绑定UI组件,我们可以使用一种工具化的方式去自动生成代码并绑定对象,增加效率。原创 2022-09-04 22:39:52 · 3717 阅读 · 0 评论 -
Unity编辑器扩展——PropertyDrawer
PropertyDrawer允许我们自定义一个属性在Inspector面板的如何绘制。原创 2022-09-02 17:40:38 · 1875 阅读 · 0 评论 -
Unity编辑器扩展——PrefabUtility
PrefabUtility是一个静态类,主要用于进行Prefab的相关处理。原创 2022-08-31 15:06:36 · 2660 阅读 · 3 评论 -
Unity中的序列化和反序列化
序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程。序列化最主要的用途就是传递对象和保存对象在Unity中保存和加载、prefab、scene、Inspector窗口、实例化预制体等都使用了序列化与反序列化。...原创 2022-08-31 11:10:40 · 7374 阅读 · 0 评论 -
Unity中实现通过代码设置资源导入设置
一:前言通过AssetImporter.GetAtPath("相对路径")得到对应的资源类型ImporterModelImporter、TextureImporter、AudioImporter等都是继承自AssetImporter二:代码实现[MenuItem("Tools/测试")]static void Test(){ TextureImporter importer = (TextureImporter)AssetImporter.GetAtPath("Assets/ic原创 2022-05-24 22:32:09 · 1314 阅读 · 0 评论 -
Unity编辑器扩展——编辑器样式预览窗口
一:前言在进行编辑器扩展时,创建控件的方法一般都会提供一个GUIStyle参数,可以让我们自定义样式,修改背景图,字体大小,颜色等等Unity内置了很多默认的样式,编写一个样式预览器可以预览所有的样式二:效果演示三:代码实现...原创 2021-08-17 09:57:53 · 3208 阅读 · 0 评论 -
Unity编辑器扩展——其他常用操作
—动态导出unitypackage。——聚焦到Project窗口。——复用MenuItem。——强制触发脚本编译。原创 2021-03-07 22:53:30 · 2572 阅读 · 1 评论 -
Unity编辑器扩展——自定义Scene窗口
一:Editor类Editor类继承自ScriptableObject类,Editor类中定义了一个重写方法OnSceneGUI,我们重写OnSceneGUI方法去自定义Scene窗口二:前言新建一个脚本MyHandles挂载到场景中的任意游戏物体身上(只有选择了挂载此脚本的游戏物体才会在执行OnSceneGUI方法)新建场景扩展脚本SceneEditor并获取到MyHandles对象using UnityEditor;using UnityEngine;[CustomEditor原创 2021-01-21 14:13:43 · 5340 阅读 · 1 评论 -
Unity编辑器扩展——Selection类
通过Selection类可以在编辑器下对选择的物体进行操作。原创 2020-11-26 00:03:21 · 6293 阅读 · 0 评论 -
Unity编辑器扩展——ScriptableWizard
ScriptableWizard类继承自EditorWindow类,所以在继承自ScriptableWizard的类中也可以自定义窗口中的内容,只不过ScriptableWizard为简单的窗口需求提供了便捷。创建按钮对应DisplayWizard的第一个参数,其他按钮对应DisplayWizard的第二个参数。OnSelectionChange触发条件:当选择的物体改变时——EditorWindow类中的回调。——ScriptableWizard类中的回调函数。——创建按钮与其他按钮的监听。原创 2020-06-13 23:49:10 · 3631 阅读 · 11 评论 -
Unity编辑器扩展——自定义Inspector面板
新建一个脚本(一般命名为需要被扩展的脚本名+Editor,例如Test脚本的Inspector扩展类命名为TestEditor),脚本需要继承自Editor,我们知道自定义的Window窗口需要在OnGUI中绘制,而自定义的Inspector面板需要在OnInspectorGUI中绘制。这些控件既可以绘制在Editor类里,也可以绘制在EditorWindow里。快速实现字段在编辑器中的显示与编辑,只能显示字段不能显示属性,private和protected需要添加序列化标识。.原创 2020-05-29 22:17:46 · 9104 阅读 · 17 评论 -
Unity编辑器扩展——自定义窗口
一:实现思路Unity编辑器中的所有窗口的绘制都继承自EditorWindow类,并且需要引入UnityEditor的命名空间,使用类中的方法自定义任何所需的窗口二:代码实现——窗口Window[MenuItem("工具栏层级")]private static void ShowWindow(){ GetWindow(typeof(TestWindow), true, "测试窗口");}——文字Labelprivate void OnGUI(){..原创 2020-05-23 14:11:45 · 8992 阅读 · 19 评论 -
Unity编辑器扩展——标签属性Attribute
——[HideInInspector]将公有的变量在Inspector面板上隐藏[HideInInspector]public int value;——[SerializeField]将私有的变量在Inspector面板上显示出来,但此变量的访问级别还是私有的[SerializeField]private int value;——[Heade...............原创 2020-01-20 13:32:12 · 7677 阅读 · 1 评论