Unity编辑器扩展

编辑器扩展相关的脚本一般都放在Editor文件夹内,继承UnityEditor命名空间下的Editor类,该文件夹中的脚本只会对Unity编辑器起作用。

[OnInspectorGUI]:在Inspector界面上给某个特定组件添加功能
[OnSceneGUI]:在Scene视图上显示一个UI元素
[MenuItem]:在编辑器的菜单栏等位置上新增功能按钮
[EditorWindow]:编辑器界面扩展
[ScriptableWizard]:一般用来开发比较简单的生成器和初始化类型的功能来使用
[Attributes]:让声明信息与代码相关联,与C#的反射联系很紧密。
[AssetProcess]:自动处理资源导入的相关配置
[ScriptObject]:对于游戏中一些数据和配置可以考虑用ScriptObject来保存, 因为它不是只适用编辑器,所以不必放在Editor文件夹下 。
[Header(“xxx”)]:在Inspector面板显示提示内容xxx。如:[Header(“金币数”)] public Text _CoinNum;
[HideInInspector]:表示将原本显示在面板上的序列化值隐藏起来。
[SerializeField]:用于 非public 类型(如private), 使非public 类型也能序列化。表示将原本不会被序列化的私有变量和保护变量变成可以被序列化的,那么它们在下次读取的值就是你上次赋值的值。
[Serializable]: 用于 自定义的,非 abstract 的类. 结构体等 , 使这类型也能序列化,如编辑器工具开发。
如: [System.Serializable] public class SDKConfig : ScriptableObject
[ExecuteAlways]:该标签使脚本的实例始终执行,作为Play Mode的一部分和Editing,一般用于编辑器开发。默认情况下,MonoBehaviours仅在Play Mode下执行,当希望脚本作为编辑器工作的一部分执行某些操作时,可以使用[ExecuteAlways]属性。

编写编辑器存储配置数据的原理:
转成json数据写入Resources文件夹的txt文本中。
数据标记为脏,调用SaveAssets存入本地
//把配置的关卡数据标记为脏,即标记成已更改状态
//该方法针对Unity序列化资源(如Prefab,ScriptableObject、美术资源等类型)
EditorUtility.SetDirty(LevelEditorStorage);
//标记为脏的资源Unity不会立即保存到磁盘,调用如下方法Unity会重新导入修改后的资源
AssetDatabase.SaveAssets();

相关推荐

  1. Unity编辑器扩展

    2024-06-06 00:44:03       32 阅读
  2. unity编辑器扩展

    2024-06-06 00:44:03       35 阅读
  3. Unity编辑器扩展

    2024-06-06 00:44:03       28 阅读
  4. Unity编辑器扩展

    2024-06-06 00:44:03       25 阅读
  5. Unity编辑器扩展

    2024-06-06 00:44:03       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 00:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 00:44:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 00:44:03       82 阅读
  4. Python语言-面向对象

    2024-06-06 00:44:03       91 阅读

热门阅读

  1. js获取blob格式的json对象

    2024-06-06 00:44:03       29 阅读
  2. Fortran入门(一)(期末复习)

    2024-06-06 00:44:03       30 阅读
  3. Springboot整合kafka简单使用

    2024-06-06 00:44:03       33 阅读
  4. chrome 浏览器历史版本下载

    2024-06-06 00:44:03       24 阅读