【学步者⽇记】UnityEditor扩展菜单以及ScriptableObject
完整版链接:
下⾯是预览的部分,带图的版本请看上⾯链接。
参考:
1. using UnityEditor 会导致编译时出错
在Unity Editor中⽣成Assemble-CSharp.dll时,由于没有UnityEditor.dll的引⽤,会引起脚本的编译错误。Build⽣成Assembly-CSharp.dll的时候,不会添加这件事请记住。如果不知道的话,有可能就不到“突然Build就⽆法通过了”的原因。 --------------------- 本⽂来⾃ xdestiny110 UnityEditor.dll的引⽤
的引⽤这件事请记住。如果不知道的话,有可能就不到
的CSDN 博客,全⽂地址请点击:blog.csdn/xdestiny110/article/details/79372530?utm_source=copy
2. Editor⽂件夹的位置⽆特别限制,可以同时⽣成多个
Editor⽂件夹的位置并没有特别的限制,同时⽣成多个也是可以的。
- Assets/Editor
- Assets/MyFolder/Scripts/Editor
- Assets/Standard Assets/Editor
3. 使⽤#if UNITY_EDITOR使编译时去除某些代码
在Runtime时需要执⾏的脚本有时候会包含Editor API。这个场合下需要使⽤#define。UnityEditor上已经有UNITY_EDITOR的宏定义。Build的时候,脚本编译是没有UNITY_EDITOR的定义的。因此#if UNITY_EDITOR中包含的代码将会被去除。 --------------------- 本⽂来⾃ xdestiny110 的CSDN 博客,全⽂地址请点击:blog.csdn/xdestiny110/article/details/79372530?utm_source=copy
接下来的部分参考
4. 细节⾯板中的范围
5. Multiline和TextArea
editor版本
Textfile默认情况下是只有⼀⾏的,但同时也能变成复数⾏显⽰的TextArea。Multiline和TextArea功能⼤致上相同,不过Multiline有着[⽆法依据宽度⾃动换⾏]和[不能使⽤scroll表⽰]的限制
6. ContextMenuItem追加右键⽅法
能够对在Inspector上表⽰的变量追加Context Menu。另外,在Component中虽然有对整体进⾏reset的功能,但没有对于单个变量进⾏reset 的功能。因此,这时候就需要使⽤ContextMenuItem添加这个功能
7. 对Color使⽤颜⾊拾取器ColorUsage
8. AddComponentMenu 该组件的添加菜单的位置
将该组件添加到菜单->AddComponent->MyUI->TweenColor中;
9. ExecuteInEditMode 在编辑器模式中运⾏
在双击加载场景时调⽤awake,同时会在编辑器模式中调⽤update、OnGUI。
10. ContextMenu 该函数在组件菜单中显⽰
组件右键菜单,执⾏某函数。
11. SelectionBase 该组件会优先被选择
当⿏标点击某物体树时,会选中该物体树中的某个物体(由Unity决定)(效果A),但当该物体树中有该属性的组件时,会⾃动选择该物体,如果再次点击⿏标,则回到效果A。
接下来的部分参考
12. EditorPref 编辑器数据持久化
保存的内容是PC⾥共享的,不被Unity项⽬所限制,适合⽤于编辑器⾥共享值的情况。保存编辑器窗⼝的⼤⼩、UnityEditor的环境设置等,
EditorPref会依据主要版本进⾏保存。特别是Windows会将值保存在注册表⾥⾯。因此如果这个过程不⼩⼼进⾏了错误的设置,最糟糕的情况下有可能导致windows⽆法启动。请特别注意。
在哪⾥保存,在OnEnable/Init/Awake等⽽不要在OnGUI和Update中。
13. ScriptableObject 脚本化对象⾃定义资产
需要声明CreateAssetMenu
对应的代码也贴出来了。从脚本中读取ScriptableObject的⽅法如下:
var exampleAsset =     AssetDatabase.LoadAssetAtPath<ExampleAsset> ("Assets/Editor/ExampleAsset.asset"); --------------------- 本⽂来⾃xdestiny110 的CSDN 博客,全⽂地址请点击:blog.csdn/xdestiny110/article/details/79678922?utm_source=copy

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。