既然ScriptableObject有自己的Inspector绘制,那么我们就可以直接调用Inspector的Editor绘制,而不需要自己手动遍历SerializedObject的属性。 publicclassEditorWindows:EditorWindow{privateEditoreditor;[MenuItem("ExtendingEditor/ShowObject Window")]publicstaticvoidShowObjectWindow(){varwindow=EditorWindow.GetWindow<EditorWindows>...
ScriptableObject的修改在编辑模式下会保存,但运行时修改默认不会持久化。可通过EditorUtility.SetDirty()标记修改(仅限Editor),或运行时序列化到其他格式(如JSON)。 循环依赖 避免ScriptableObject之间相互引用导致资源加载死锁。 六、总结 ScriptableObject是构建灵活、可维护游戏框架的利器,尤其适合: 静态/半静态数据(如配...
Unity小白:ScriptableObject踩坑记录 在使用ScriptableObject之前,我研究过官方文档,但很显然,里面并没有说的多详细,倒是在CSDN上有很多博主给出了一些常见错误:在ScriptableObject里面试图保存多维数组;在ScriptableObject里保存类时没有对类进行序列化;在editor运行时ScriptableObject的数据更改不会保存,要特殊标记为dirt才能将...
Editorclass in UnityEditor / 继承自:ScriptableObject描述 从中派生自定义编辑器的基类。使用此类可为对象创建您自己的自定义检视面板和编辑器。 设想一个 MyPlayer 脚本,其中包含盔甲和伤害的变量,以及对枪支 GameObject 的引用。 using UnityEngine; using System.Collections;// This is not an editor script. ...
常见的有:ScriptableObject, EditorUtility,AssetDatabase,Selection,Event等。 一、 ScriptableObject 1. 简介与定义 这里初略介绍一下【ScriptableObject】,我们可以把他理解为一种存储于【硬盘】而不是【内存】上的Config资产文件。 就像一张Excel表一样,在一个【ScriptableObject】中配置的数据是持久化保存的。
ScriptableObject 是一个可独立于类实例来保存大量数据的数据容器。ScriptableObject 的一个主要用例是通过避免重复值来减少项目的内存使用量。如果项目有一个预制件在附加的 MonoBehaviour 脚本中存储不变的数据,这将非常有用。
Scriptable Object 3 | Editor扩展 | Unity3D开放项目 END 最后再说一点,ScriptableObject最终最合适的用法还是作为一个数据容器来使用,我们不能指望ScriptableObject能够做到更多。ScriptableObject能够帮助我们解决一些代码之间的耦合,独立出一些数据和逻辑存放在ScriptableObject中,就可以变成可拔插式的SO文件,随便组合,就能组装...
using UnityEditor;publicclassImporterExample:AssetPostprocessor{privatevoidOnPreprocessTexture(){varimporter=assetImporterasTextureImporter;// Read/Write settings, etc. are also possible.importer.isReadable=false;varsettings=newTextureImporterPlatformSettings();// Specify Android = "Android", PC = "Standalo...
就像MonoBehaviour 一样,ScriptableObject 派生自基本 Unity 对象,但与 MonoBehaviour 不同,不能将 ScriptableObject 附加到游戏对象。正确的做法是需要将它们保存为项目中的资源。 如果使用 Editor,可以在编辑时和运行时将数据保存到 ScriptableObject,因为 ScriptableObject 使用 Editor 命名空间和 Editor 脚本。但是,在已部署...
- ScriptableObject:它是一种特殊类型的Asset,可以在运行时创建和编辑,并允许使用者保存和分享自定义数据和行为。- AssetPostprocessor:可以在Unity的Asset导入和编辑过程中通过脚本进行干预,例如自动修改导入的3D模型材质、纹理等。- EditorWindow和InspectorWindow:这些窗口是基于Editor API开发的高级窗口,...