Unity 属性面板Inspector定制
2017-01-10 11:09
1226 查看
[b]1、显示枚举对应的参数
[/b]
脚本1:
using System.Collections; using System.Collections.Generic; using UnityEngine; public enum EnumTest { None, EnumValue1, EnumValue2, EnumValue3 } public class TestInspector : MonoBehaviour { [SerializeField] private EnumTest _enumTemp = EnumTest.None; [SerializeField] private int _temp1 = 1; [SerializeField] private int _temp2 = 2; [SerializeField] private int _temp3 = 3; }
脚本2:(放在Editor文件夹下)
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; //Tip: typeof(脚本名) [CustomEditor(typeof(TestInspector)),CanEditMultipleObjects] public class EditorInspector : Editor { private SerializedProperty enumTemp; private SerializedProperty temp1; private SerializedProperty temp2; private SerializedProperty temp3; void OnEnable () { //Tip: serializedObject.FindProperty ("变量名"); enumTemp = serializedObject.FindProperty ("_enumTemp"); temp1 = serializedObject.FindProperty ("_temp1"); temp2 = serializedObject.FindProperty ("_temp2"); temp3 = serializedObject.FindProperty ("_temp3"); } public override void OnInspectorGUI () { //Tip: 用来实时更新 serializedObject.Update (); EditorGUILayout.PropertyField (enumTemp); switch (enumTemp.enumValueIndex) { case (int)EnumTest.None: //Debug.Log("None"); break; case (int)EnumTest.EnumValue1: EditorGUILayout.PropertyField (temp1); break; case (int)EnumTest.EnumValue2: EditorGUILayout.PropertyField (temp1); EditorGUILayout.PropertyField (temp2); break; case (int)EnumTest.EnumValue3: EditorGUILayout.PropertyField (temp1); EditorGUILayout.PropertyField (temp2); EditorGUILayout.PropertyField (temp3); break; } //Tip: 应用修改属性 serializedObject.ApplyModifiedProperties (); } }
相关文章推荐
- Unity定制,将属性暴露在Inspector面板上
- Unity Inspector面板常用的属性
- Unity根据条件控制Inspector面板中的属性显示
- Unity根据条件控制Inspector面板中的属性显示
- Unity 控制public/private 是否暴露给Inspector面板
- 将类对象显示在Unity的Inspector面板上
- Unity3D属性监视面板(Inspector)
- Unity Editor OnInspectorGUI的重写与面板的创建
- Unity3D中在Inspector面板中显示复合属性信息(类属性/Struct属性)
- Unity开发:开启Unity项目中VS工程的属性面板
- Unity编辑器重写Inspector面板,面板中编辑的数据不触发场景发生变化的问题。
- unity自定义inspector面板(选择不同枚举类型,inspector面板出现不同信息)
- 个人对unity inspector面板中不显示二维数组的解决方法
- Unity 5中如何控制检视面板上的属性是否显示
- 在Unity 5中如何控制检视面板上的属性是否显示?
- unity的public在属性面板修改的实时性
- Unity 编辑器 Inspector面板枚举
- 利用unity3d属性来设置Inspector面板的特殊行为
- Unity编辑器重写Inspector面板,面板中编辑的数据不触发场景发生变化的问题。