欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Unity 自定义编辑器根据枚举值显示变量

Unity 自定义编辑器根据枚举值显示变量

2024/10/25 11:33:50 来源:https://blog.csdn.net/weixin_50702814/article/details/139330940  浏览:    关键词:Unity 自定义编辑器根据枚举值显示变量
public class Test : MonoBehaviour
{[HideInInspector][Header("数量")][SerializeField]public int num;[Header("分布类型")][SerializeField]public DistributionType distType;[HideInInspector][Header("位置")][SerializeField]public List<Vector3> positions;[Header("test")][SerializeField]List<testType> test;
}[Serializable]
public class testType
{public int id;public string name;
}public enum DistributionType
{None,test1,test2,test3,
}
[CustomEditor(typeof(Test))]
public class TestEditor : Editor {public SerializedObject obj;public SerializedProperty distType;public SerializedProperty positions;public SerializedProperty num;public SerializedProperty test;void OnEnable(){obj = new SerializedObject(target);distType = obj.FindProperty("distType");num = obj.FindProperty("num");positions = obj.FindProperty("positions");test = obj.FindProperty("test");}public override void OnInspectorGUI(){//base.OnInspectorGUI();obj.Update();if (distType.enumValueIndex == 0){EditorGUILayout.PropertyField(positions, true);}else{EditorGUILayout.PropertyField(num);}EditorGUILayout.PropertyField(test,true);obj.ApplyModifiedProperties();}
}

 

在数据类中(文中是Test类)数组类的字段在开启基类的base.OnInspectorGUI();不能用[HideInInspector],否则会无法显示数组内容。

参考链接:

Unity 自定义inspector界面如何显示数组_360问答 (so.com)

Unity根据条件控制Inspector面板中的属性显示_unity inspect 条件控制-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com