目录
- 0 引言
- 1 新建C++类
- 2 类前的宏
- 🙋♂️ 作者:海码007
- 📜 专栏:UE虚幻引擎专栏
- 💥 标题:【UE5 虚幻引擎】新建C++类:类的类型 命名 类的目标模块
- ❣️ 寄语:加油,一次专注一件事!
- 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正,同时有问题的话,欢迎大家留言讨论。
0 引言
最近总是使用UE C++,但是还没来得及好好研究添加C++类的时候各种设置。对C++类的宏也不是很了解
1 新建C++类
注意:UE4新建C++类和UE5新建C++类,有略微差别。本文主要讲解UE5的方法。
方法一:【工具】栏新建C++类
方法二:在内容浏览器中,选中C++类文件模块,然后在右键新建C++类。
前面两种方法点击【新建C++类】,都会弹出一个窗口让选择父类等一系列配置操作(相当于C++类向导了)
配置窗口如下
- 首先弹出选择父类的窗口,这里根据功能需要自行选择一个父类就行。
- 随后弹出另一个窗口,设置类的类型,命名,还有类的目标模块。
- 类的类型:一般选择公共就行
公共:会新建两个文件夹,一个Pulic文件夹存放.h头文件,一个Private文件夹存放.cpp文件。
私有:会将.h头文件和.cpp文件都放入Private文件夹中- 类的目标模块
选择好一个模块后UE会在新建的类前加一个宏,用于标识目标模块
目标模块有很多,可以把这个类放到本工程模块里,也可以放到插件模块里。
2 类前的宏
这个class标识符后面的宏用于标识本类所属的目标模块,是本工程的还是属于某一个插件的。
该宏所属的文件在Intermediate\Build\Win64\UnrealEditor\Development\项目名文件目录下。(Intermediate是编译的中间文件存放位置)
参考文章:https://zhuanlan.zhihu.com/p/407291193
#define CPP_CLASS_10_15_API DLLEXPORT 是一个预处理指令,用于定义一个名为CPP_CLASS_10_15_API的宏,并将其展开为DLLEXPORT。这种用法通常在C++代码中用于导出或导入符号(函数、类等)以供其他模块使用。
在这个特定的例子中,DLLEXPORT很可能是一个平台相关的宏,用于在编译动态链接库(DLL)时指定符号的可见性,以便其他模块可以使用这些符号。CPP_CLASS_10_15_API的目的可能是将它应用于某个类或函数,以便在编译时将其导出为动态链接库的公共接口。
需要注意的是,CPP_CLASS_10_15_API和DLLEXPORT这些名称是示例中的占位符,实际使用时可能会有不同的命名和具体实现。具体的宏定义和用法取决于代码中的上下文和需求。