public override void OnInspectorGUI() { //The variables and GameObject from the MyGameObject script are displayed in the Inspector with appropriate labels EditorGUILayout.PropertyField(m_IntProp, new GUIContent("Int Field"), GUILayout.Height(20)); EditorGUILayout.PropertyField(m_VectorProp, new GU...
ProgressBar(mpProp.intValue/100f,"MP");//可以直接通过PropertyField绘制默认Field或自定义PropertyAttribteEditorGUILayout.PropertyField(swordProp,swordContent);//应用SerializedProperty改变serializedObject.ApplyModifiedProperties();//2. 直接修改对象身上的值EditorGUI.BeginChangeCheck();InspectorExampleiEx=(Inspector...
第一种,先将 GUI.enabled置为false,让它不能编辑,然后通过EditorGUI.PropertyField编写该属性属性,再置为true. 第二种,获取到property的类型和值,通过EditorGUI.LabelField进行编写。第二种是看的别人的博客整的。下面为显示效果。 然后,随便创建个脚本,在变量前面添加 [DisplayOnly]就可以了,也可以写成[DisplayOnly...
我将详细介绍Editor Windows(窗口)开发、Editor Inspector(属性窗口)开发、Editor Hierarchy(右键菜单)开发。 二、Windows窗口开发 1、创建一个Editor脚本 在Editor文件夹下新建一个类(TestEditorWindows),该类集成EditorWindow,还需要引用UnityEditor命名空间。 2、了解一些Windwos窗口开发的方法 创建类完毕之后,在...
从2017开始,在editor脚本中查找属性是这样写的 var m_Script = serializedObject.FindProperty("m_Script"); SerializedProperty 以UGUI的源码为例 using UnityEngine; using UnityEngine.UI; using UnityEditor.AnimatedValues; namespace UnityEditor.UI {
LabelField(new Rect(x, position.y, w, position.height), property.displayName); break; case 1: EditorGUIUtility.labelWidth = 25; EditorGUI.PropertyField(new Rect(x, position.y, w, position.height), property.FindPropertyRelative("min")); break; case 2: EditorGUIUtility.labelWidth = 25; ...
EditorGUILayout.PropertyField public static boolPropertyField(SerializedPropertyproperty, params GUILayoutOption[]options); public static boolPropertyField(SerializedPropertyproperty,GUIContentlabel, params GUILayoutOption[]options); public static boolPropertyField(SerializedPropertyproperty, boolincludeChildren, params GU...
6、EditorGUILayout.LabelField:文本信息 LabelField控件,就是文本标签了,在这里可以书写自己的信息,没什么好介绍的。 7、GUILayout.HelpBox:帮助信息 HelpBox类似LabelField标签,也是文字提示类的,但是它多了几个状态以及背景框,选择不同的状态显示不同的UI。
{varenumfield =enumtype.GetField(enumName);varhds = enumfield.GetCustomAttributes(typeof(HeaderAttribute),false); m_displayNames.Add(hds.Length<=0? enumName : ((HeaderAttribute)hds[0]).header); } EditorGUI.BeginChangeCheck();varvalue =EditorGUI.Popup(position, att.header, property.enumValue...
2 只读属性:1. 只读属性如图所示,只有getter,或者setter为私有。2. 对于这种情况,我们需要修改ExposeProperties代码,3. 第一处修改是修改其生成EditorGUILayout的过程,仅生成一个LabelField简单的显示属性的字符串形式即可。4. 第二处修改是GetProperties函数,所有可读的属性都处理即可。注意事项 如果遇到问题,可以...