c# - 确定从 UnityEngine.Component 内省的属性是否在编辑器的 Inspector 窗格中可见?
问题描述
我正在编写一个程序(实际上是一个完整的实用程序套件)来将 Unity 场景的整个对象层次结构转储为 XML(用于生成项目文档,而不是持久性或传递对象)。一个问题让我完全难住了。
给定一个 UnityEngine.Component 对象componentObject
,我可以通过自省获得它的字段和属性:
FieldInfo[] fi = componentObject.GetType().GetFields();
PropertyInfo[] pi = componentObject.GetType().GetProperties();
问题是,GetProperties() 返回的许多属性实际上并不是可以在 Inspector 窗格中修改的属性(例如,有些可能仅在选择下拉列表中的某个选项时才显示......目前,它未被选中,因此这些选项将不可见)。
我希望能够确定给定属性是否可以通过编辑器中的 Inspector 窗格进行编辑,并跳过任何不会在 Inspector 窗格中显示的属性。
所以......给定:
- 一组 PropertyInfo 对象,
- 通过自省从 UnityEngine.Component 获得,
- 与场景层次结构中启用的游戏对象相关联,
...如果在层次结构列表中选择了组件的父游戏对象,我如何确定给定属性在检查器窗格中是否实际可见和可编辑?
解决方案
推荐阅读
- android - iOS 上的 Flutter Backgroundfetch 不会触发
- php - PHP代码正在向垃圾邮件发送电子邮件,如何防止它?
- sharepoint - 在 Project Server 2019 中处理草稿项目时出现 CSOMUnknownUser 时间表错误
- vhdl - 7 4 xilinx 中的汉明解码器(显示警告“温度应在进程的敏感度列表中”)
- node.js - 如何使用nodejs将文件上传到sharepoint liste
- javascript - 创建一个指向页面并打开手风琴选项卡的链接
- python - 在 python 脚本中运行 GATE 管道。能够在 python 上将导出的 GATE 应用程序作为“应用程序状态”运行
- android - Android Emulator 中的“FT”被铅笔图标取代
- javascript - 在 vue 中使用渲染函数进行可重用的过渡
- python - 让 Matplotlib 图例按行而不是按列列出条目