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();

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小程小程,永不消沉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值