Editor还会从Inspector调用OnValidate和Reset。你可以在SO对象上创建自己的方法,但是游戏引擎循环并不会自动调用它们。 运行时,MB必须依附于GameObjects。如果你需要在运行时新建一个,则要使用AddComponent API. 每一个SO实例都可以单独在项目层次存储在自己的文件中。 在编辑器中,当退出Play状态后,所有在Play状态下所...
1. 搜索框(ObjectPicker) 2. 选中提示 四、AssetDatabase 1. 获取资产路径 2. 加载资产 3. 创建资产 五、小结 前言: 系列目录:Unity3d Editor 编辑器扩展功能详解(1) 目录索引 上一章节:Unity3d Editor 编辑器扩展功能详解(5)Handles 下一章节:Unity3d Editor 编辑器扩展功能详解(6)Editor常用辅助类(下) ...
当使用编辑器运行游戏的时候,可以将数据保存到ScriptableObject里(当创建一个脚本化对象实例后使用AssetDatabase.CreateAsset()保存该资源),退出之后也不会丢失,因为它是作为Assets下的资源存在的;它是仅在编辑器中才可以保存修改的数据(因为ScriptableObject对象虽然声明在UnityEngine中,但是它的Scriptable是通过UnityEditor命...
我们需要实例化一个继承自Scriptable Object的C#脚本,为了方便在Unity Editor中实例化一个Scriptable Object,我们在脚本类声明前添加CreateAssetMenu属性,这样我们就可以在Unity Asset面板中右键创建一个Scriptable Object实例了,如下图。 当我们实例化一个Scriptable Object脚本之后,我们就可以发现实例化后的Scriptable Object...
但只有在编辑器模式下才可以修改里面的数据,这是因为ScriptableObject对象虽然声明在UnityEngine中,但是它的Scriptable是通过UnityEditor命名空间下的类(例如Editor类等)来实现的, 所以ScriptableObject生成的数据资源文件在Editor外具有只读属性,这是非常需要注意的一点。如果我们需要在游戏中修改数据并存储下来,就不推荐使用Scr...
Derive from this base class to create a custom inspector or editor for your custom object. using UnityEngine; using System.Collections;// This is not an editor script. public class MyPlayer : MonoBehaviour { public int armor = 75; public int damage = 25; public GameObject gun; void Update...
step2.新建一个脚本扩展Editor,使编辑器能够创建自定义的ScriptableObject对象 usingUnityEngine;usingUnityEditor;//新建一个Editor文件夹,放在里面publicclassMakeEnemyData{[MenuItem("Assets/Editor/Scriptable Object")]//定义了如何新建的路径publicstaticvoidCreateMyAsset(){//将EnemyData创建为assetEnemyDataasset=Scri...
//方法2:在菜单栏中通过静态方法创建 需要继承UnityEditor public class ScriptableObjectTool { [MenuItem("ScritableObject/CreateData")] public static void CreateMyData() { //创建数据资源文件 //泛型是继承自ScriptableObject的类 BulletData asset = ScriptableObject.CreateInstance<NewSO>(); ...
在多材质编辑器中,MaterialArrayDrawers类实现了MultiMaterialEditor和MultiMaterialDataEditor中材质编辑器框的绘制。如果想为自己的Scriptable Object定制检视窗口并支持直接将其用于组件,可以完全复用该多材质编辑器代码。 当尝试在另一编辑器的OnInspectorGUI方法中绘制材质编辑器时,出于对性能与交互限制的考虑有些重要事项...
Just like MonoBehaviours, ScriptableObjects derive from the base UnityEngine.Object but, unlike MonoBehaviours, you can’t attach a ScriptableObject to a GameObject. Instead, you need to save them as Assets in your Project.When you use the Unity Editor, you can save data to ScriptableObjects ...