【UE5 虚幻引擎】新建C++类:类的类型 命名 类的目标模块

news2024/11/28 3:48:26

目录

  • 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++类向导了)
配置窗口如下

  1. 首先弹出选择父类的窗口,这里根据功能需要自行选择一个父类就行。在这里插入图片描述
  1. 随后弹出另一个窗口,设置类的类型,命名,还有类的目标模块。
    在这里插入图片描述
  • 类的类型:一般选择公共就行
    公共:会新建两个文件夹,一个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这些名称是示例中的占位符,实际使用时可能会有不同的命名和具体实现。具体的宏定义和用法取决于代码中的上下文和需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

游戏设计模式专栏(十):在Cocos游戏开发中运用外观模式

点击上方亿元程序员关注和★星标 引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。 外观模式(F…

C#,数值计算——数据建模State的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class State { public double lam1 { get; set; } public double lam2 { get; set; } public double tc { get; set; } public int k1 { get; set; } public…

系统对接-验签机制

一、消息摘要算法 1、消息摘要算法特点 消息摘要算法加密过程不需要密钥,加密的数据无法解密。 只有输入相同的明文并且使用相同的摘要算法才能得到相同的结果。 2、MD5算法 压缩性:任意长度的数据MD5值都是固定128位(32个16进制数值串&a…

CUDA initialization: The NVIDIA driver on your system is too old解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

基于大模型(LLM)的Agent 应用开发

目前,业界一般认为基于大模型的应用集中在两个方向上:RAG 和 Agent,无论哪一种应用,设计、实现和优化能够充分利用大模型(LLM)潜力的应用都需要大量的努力和专业知识。随着开发人员开始创建日益复杂的LLM应用程序,开发…

Mock入门之概念理解

当我们讨论软件测试,特别是单元测试时,经常会遇到“mock”和“Mockito”。让我们先了解“mock”,然后详细探讨“Mockito”。 Mock概述 定义: 在软件测试中,mock是一个模拟真实对象的虚假对象,它模拟了真实对象的行为。…

在Google cloud上创建VM虚拟机

登录GCP console,确保Compute Enginee API 已经被eanbled 在左边菜单栏,选择第一个item - VM instance 如果见到上面页面, 则代表compute enginee的API 已经被enabled, 否则要先enable Compute enginee的API. 后者从APIs &…

【Eclipse】取消按空格自动补全,以及出现没有src的解决办法

【Eclipse】设置自动提示 教程 根据上方链接,我们已经知道如何设置Eclipse的自动补全功能了,但是有时候敲变量名的时候按空格,本意是操作习惯,不需要自动补全,但是它却给我们自动补全了,这就造成了困扰&…

14.7 Socket 循环结构体传输

在上述内容中笔者通过一个简单的案例给大家介绍了在套接字编程中如何传递结构体数据,本章将继续延申结构体传输,在某些时候例如我们需要传输一些当前系统的进程列表信息,或者是当前主机中的目录文件,此时就需要使用循环结构体传输…

C++ 引用()的超详细解析(小白必看系列)

目录 一、前言 二、引用的概念介绍 三、引用的五大特性 💦 引用在定义时必须初始化 💦 一个变量可以有多个引用 💦 一个引用可以继续有引用 💦 引用一旦引用一个实体,再不能引用其他实体 💦 可以对任何…

02-spring源码概述-debug流程

文章目录 1. 两个主要ApplicationContext的类继承结构图1.1 ClassPathXmlApplicationContext1.2 ClassPathXmlApplicationContext 2. DefaultListableBeanFactory类继承结构图 1. 两个主要ApplicationContext的类继承结构图 1.1 ClassPathXmlApplicationContext 1.2 ClassPath…

基于SSM的旅游景点管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

MySQL数据库——SQL优化(3/3)-limit 优化、count 优化、update 优化、SQL优化 小结

目录 limit 优化 count 优化 概述 count用法 update 优化 SQL优化 小结 limit 优化 在数据量比较大时,如果进行limit分页查询,在查询时,越往后,分页查询效率越低。 当在进行分页查询时,如果执行limit 2000000,1…

11 | JpaRepository 如何自定义

EntityManager 介绍 Java Persistence API 规定,操作数据库实体必须要通过 EntityManager 进行,而我们前面看到了所有的 Repository 在 JPA 里面的实现类是 SimpleJpaRepository,它在真正操作实体的时候都是调用 EntityManager 里面的方法。…

Java中的正则表达式

1、体验正则表达式 import java.util.regex.Matcher; import java.util.regex.Pattern;/*** Description: 体验正则表达式:提取英文单词* Author: yangyongbing* CreateTime: 2023/10/16 08:38* Version: 1.0*/ public class Regexp {public static void main(String[] args)…

【Bug】ERROR ResizeObserver loop completed with undelivered notifications.

【Bug】ERROR ResizeObserver loop completed with undelivered notifications. 报错如下: ERROR ResizeObserver loop completed with undelivered notifications.at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299…

Qt 视口和窗口的区别

视口和窗口 绘图设备的物理坐标是基本的坐标系,通过QPainter的平移、旋转等变换可以得到更容易操作的逻辑坐标 为了实现更方便的坐标,QPainter还提供了视口(Viewport)和窗口(Window)坐标系,通过QPainter内部的坐标变换矩阵自动转换为绘图设…

802.1x协议详解,802协议工作原理/认证过程、MAB认证、EAP报文格式

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 802.1x协议 1、什么是802.1x协议2、802.1x架构3、触…

【LeetCode热题100】-- 45.跳跃游戏II

45.跳跃游戏II 方法:贪心 在具体的实现中,维护当前能够到达的最大下标的位置,记为边界。从左到右遍历数组,到达边界时,更新边界并将跳跃次数加一 在遍历数组时,不访问最后一个元素,因为在访问…

命令的历史管理

查看历史命令 cat ~/.bash_history history 清除历史命令 history -c >~/.bash_history 指定命令清除历史命令 history -d 55 vim /etc/profile 修改source /etc/profile (保存修改内容)