Editorclass in UnityEditor / 继承自:ScriptableObject描述 从此基类派生,以便为自定义对象创建自定义检视面板和编辑器。 using UnityEngine; using System.Collections;// This is not an editor script. public class MyPlayer : MonoBehaviour { public int armor = 75; public int damage = 25; public ...
charData.critChance=EditorGUILayout.Slider(charData.critChance,0,charData.power); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Name"); charData.name=EditorGUILayout.TextField(charData.name); EditorGUILayout.EndHorizontal(); } 效果: 3-安全:这里我们防止出现空...
1[CreateAssetMenu]2publicclassTestClass : ScriptableObject3{4[Range(0,10)]5publicintintData;6publicstringstringData;7publicList<DataClass>dataList;8}9[System.Serializable]10publicclassDataClass11{12[Range(0,100)]13publicintid;14publicVector3 position;15publicList<int>list;16} 其他 需要修改显示...
1. 继承Editor,重写OnInspectorGUI方法 Editor官方文档 效果 实现 定义一个测试类TestClass,一个可序列化类DataClass [CreateAssetMenu]publicclassTestClass:ScriptableObject{[Range(0,10)]publicintintData;publicstringstringData;publicList<DataClass>dataList;}[System.Serializable]publicclassDataClass{[Range(0,100...
就像MonoBehaviour 一样,ScriptableObject 派生自基本 Unity 对象,但与 MonoBehaviour 不同,不能将 ScriptableObject 附加到游戏对象。正确的做法是需要将它们保存为项目中的资源。 如果使用 Editor,可以在编辑时和运行时将数据保存到 ScriptableObject,因为 ScriptableObject 使用 Editor 命名空间和 Editor 脚本。但是,在已部署...
63.使用ScriptableObjects管理游戏数据 对于游戏数据比如武器、成就等,可使用ScriptableObjects在编辑器中进行有效组织。如下代码所示: 代码语言:javascript 复制 using UnityEngine;publicclassNewBehaviourScript:ScriptableObject{publicstring ItemName;publicint ItemLevel;publicTexture2D ItemIcon;} ...
使用临时 ScriptableObject Inspector 及其 Preset 按钮显示自定义设置的EditorWindow脚本示例(保存到名为Editor/MyEditorWindow.cs的文件): using UnityEngine; using UnityEditor; using UnityEditor.Presets; public class MyEditorWindow : EditorWindow { // 获取预设图标和样式来进行显示 private static class Styles ...
1.创建ScriptableObject usingUnityEngine;[CreateAssetMenu(fileName="MyData",menuName="Custom/MyDataAsset",order=1)]publicclassMyData:ScriptableObject{publicintid;publicstringobjName;publicfloatvalue;publicboolisUsed;} image.png 也可以通过方法调用来创建资源,最终得到的资源是一样的,该脚本需要放在Editor文件...
/// /// 音频库/// [CreateAssetMenu(fileName="New Audio Database",order=215)]publicclassAudioDatabase:ScriptableObject{/// /// 音频库名称/// publicstringdatabaseName;/// /// 输出混音器组/// publicAudioMixerGroupoutputAudioMixerGroup;/// /// 音频数据列表/// publicList<AudioData>dataset...
通过检查GUI.changed,如果发现用户修改了任何值,EditorUtility.SetDirty代码就会执行。其作用是将指定对象标记为脏。 [Unity内部使用dirty标记去确定资源什么时候被修改,并且需要被存盘。比如,你修改了一个prefab的MonoBehaviour或者ScriptableObject变量,你必须告诉Unity这个值被改变。Unity内置的组件,其内部在属性变化时自动调...