Prepar3D中RegisterProperty接口族回调及参数问题咨询
Prepar3D RegisterProperty接口族核心疑问解析
回调函数触发条件
- PPropertyCallback:
当注册的属性被读取(比如SimObject核心系统查询属性值、座舱面板控件获取数据)或写入(外部插件修改、用户操作触发属性变更)时触发。如果是可写属性,写入操作的前后都会调用回调——前者用于验证输入值的合法性,后者用于同步属性变更到插件内部逻辑;只读属性仅在被读取时触发回调返回当前值。 - PEventCallback:
绑定的事件被触发时调用,触发场景包括:用户触发自定义开关/按钮事件、SimObject状态达到预设阈值(比如起落架完全锁定)、属性值发生特定变更(比如燃油量低于告警值),或是插件主动调用事件触发接口时。
guidCategory的含义
它不是用户定义的类类型ID,而是属性分组的唯一标识GUID。Prepar3D用它来对属性进行逻辑归类,方便内部管理和插件批量查询操作。你可以:
- 生成自定义GUID,将插件内的相关属性(比如自定义发动机参数)归为同一组;
- 复用Prepar3D内置的分类GUID(比如引擎、飞行控制、导航相关的预定义GUID),让自定义属性和原生属性统一归类。
PropertyBaseUnits的作用
这是属性的基础度量单位定义,用于告知Prepar3D属性值的基准单位。核心作用包括:
- 统一属性的存储和交互基准,避免插件与SimObject系统间的单位转换错误;
- 支持Prepar3D自动处理单位转换(比如将基础单位为"Knots"的速度属性转换为"MetersPerSecond"显示);
- 确保属性与座舱面板、其他插件的交互一致性。建议优先使用Prepar3D内置的单位字符串(比如"GallonsPerHour"、"Degrees"),避免自定义单位导致兼容性问题。
内容的提问来源于stack exchange,提问作者SZYoo
相关产品推荐
相关产品推荐

