news 2026/4/18 4:25:14

自定义类或结构体-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自定义类或结构体-–-behaviac

原文

  • 在.h文件中,任意编写一个自定义的类或结构体,并用宏DECLARE_BEHAVIAC_STRUCT声明该类或者结构体为非虚类,如下代码所示:
structTypeTest2_t{intname;floatweight;boolbLive;DECLARE_BEHAVIAC_STRUCT(TypeTest2_t);};

上面的用法定义出来的TypeTest2_t在导出的元信息中为值类型(也即在导出的元信息中其值IsRefType为false),值类型可以在编辑器中设置其成员属性。与值类型对应的是引用类型,引用类型不会导出其成员属性,在编辑器中也不用配置其成员属性。

另外,宏DECLARE_BEHAVIAC_STRUCT也可以带2个参数,第一个参数为类型,第二个参数为true表示该类型用作为引用类型(也即导出元信息后其值IsRefType为true),否则不用第二个参数表示为值类型,如下代码所示:

DECLARE_BEHAVIAC_STRUCT(TypeTest2_t,true);
  • 在.cpp文件中,通过一系列宏注册该类或结构体自身的描述及其属性:
BEGIN_PROPERTIES_DESCRIPTION(TypeTest2_t){CLASS_DISPLAYNAME(L"测试结构体")CLASS_DESC(L"自定义结构体")REGISTER_PROPERTY(name);REGISTER_PROPERTY(weight).DISPLAYNAME(L”重量”);REGISTER_PROPERTY(bLive).DISPLAYNAME(L”是否活着”).DESC(L”存活状态”);}END_PROPERTIES_DESCRIPTION()
  • 在初始化注册(Register)的部分需要加上如下的代码,反注册(UnRegister)的部分添加相应UnRegister的代码。注意这部分Register/UnRegister的代码不是必须的,如果该类型没有用作par或者没有用作条件比较,就可以不需要。
behaviac::TypeRegister::Register<TypeTest2_t>(" TypeTest2_t ");behaviac::TypeRegister::UnRegister<TypeTest2_t>(" TypeTest2_t ");

更多细节可以参考behaviac组件C++源码库中btunittest工程的reflectionunittest.cpp文件中TypeTest2_t结构体相关的代码。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 18:23:59

清朝条约全集 PDF 电子版(三册合集):从尼布楚到辛丑条约的完整史料集

若想系统梳理清代对外关系的史料脉络,这份《清代外交文献三册合辑》可作为重要参考 —— 它完整收录了自 1689 年《尼布楚条约》至 1901 年《辛丑条约》期间的核心外交文书,覆盖清代近 220 年的对外交往历程。 这套合辑以时间为线索分册编排&#xff1a…

作者头像 李华
网站建设 2026/4/15 21:58:52

6、数据保护:备份、恢复与业务连续性

数据保护:备份、恢复与业务连续性 在当今数字化时代,数据保护对于各类组织而言至关重要。它不仅关乎数据的安全性,还涉及业务的连续性和灾难恢复能力。本文将深入探讨数据保护的各个方面,包括面临的挑战、可用的机会以及具体的保护策略和技术。 1. 数据保护基础 在 IT 领…

作者头像 李华
网站建设 2026/4/16 12:09:04

检索重排序的 Dify 结果过滤:5步实现精准结果过滤与排序优化

第一章:检索重排序的 Dify 结果过滤在构建基于大语言模型的应用时,检索增强生成(RAG)系统常面临检索结果相关性不足的问题。Dify 作为低代码 AI 应用开发平台,提供了灵活的结果过滤与重排序机制,帮助开发者…

作者头像 李华
网站建设 2026/4/15 22:00:17

Cocos creator判断节点是否能用的方法

一般用 if (coinNode && coinNode.isValid),但为什么unity却不用这种呢?以下是AI给的回答一、Cocos Creator 中 if (coinNode && coinNode.isValid) 的原因在 Cocos Creator(尤其是较新版本,比如 v3.x&#xff09…

作者头像 李华
网站建设 2026/3/14 21:23:08

Gemini 3.0架构革新:从单模态到“全模态统一”的技术跃迁

当AI学会像人类一样“融会贯通”所有感官信息 一、痛点:割裂的AI世界 2023年,开发者小李遭遇典型困境: 用文本模型生成产品需求文档 → 需手动转为流程图用图像模型识别UI设计稿 → 需人工标注组件坐标用代码模型实现功能 → 需反复解释业…

作者头像 李华