阿赵UE引擎C++编程学习笔记——HelloWorld

  大家好,我是阿赵。
  从这一篇开始学习虚幻引擎的C++编程。
  学习所有编程好像都应该从HelloWorld开始,所以我这里也不例外。不过为了能打印出HelloWorld,需要做的事情还不少。不过到了能打印出HelloWorld的时候,我感觉学习的过程就成功了一小半了。

一、 建立C++工程。

  之前学习蓝图的时候,建立工程是建立蓝图的,这里我创建野怪项目,叫做MyDemo,选择的是C++类型的项目。
在这里插入图片描述

在这里插入图片描述

  创建完项目之后,可以在工具里面找到新建C++类、刷新Visual Studio项目和打开Visual Studio三个选项。
在这里插入图片描述

  如果之前已经安装好了Visual Studio,那么选择打开Visual Studio选项,就应该能在Visual Studio打开这个MyDemo工程的C++项目了。

二、 安装Visual Studio 2022

  需要注意的是,如果是用UE5版本的虚幻引擎,那么需要用Visual Studio 2022版本来配合使用。
  在安装的vs2022的时候,记得把UE相关的选项都勾选上。
在这里插入图片描述

三、 C++项目

  在正确安装好VS2022之后,可以打开C++项目了,还是刚才UE引擎里面的工具——>打开Visual Studio,这时候VS2022启动,然后就会打开项目。
  来看看这个项目的目录结构:

1、 Engine部分

这部分是UE5自带的代码,不能修改,但能查看和断点。

2、 Games部分

这部分是我们这个项目里面的代码,我们之后将要在这里面写C++代码

3、 Programs部分

这部分包括了各种工具类,比如我们编译C++代码用的UnrealBuildTool。
4、其他比如还有Rules和Visualizers,这些暂时不了解。
在这里插入图片描述

  然后其他就是VS的常规操作了,可选择调试器,并运行调试器进行代码断点。需要注意的是,C++的代码如果修改了,是需要先编译才能运行的。其实在用Unity引擎的时候,编写C#也是同样要编译的,只是一般人都会默认保留了引擎自动编译的选项。所以在Unity引擎修改了C#代码再回到Unity编辑器的时候,编辑器右下角会转动一个进度,那个其实就是在编译C#代码。
  UE使用C++,记得修改完C++代码之后,需要编译,才能看到效果。
在这里插入图片描述
在这里插入图片描述

  也可以通过生成,编译C++代码。
在这里插入图片描述

  也可以UE编辑器里面的编译按钮来编译C++:
在这里插入图片描述

  在创建项目的第一次编译,似乎只能是在VS里面先编译一次,不然会弹出提示:
在这里插入图片描述

  这时候关闭了UE编辑器,只保留VS2022打开着C++的项目,然后在VS端编译:
在这里插入图片描述
在这里插入图片描述

  编译后再打开UE的编辑器,然后再点一次编译器里面的编译按钮:
在这里插入图片描述

  这一次,发现编译成功了。
在这里插入图片描述

四、 开始编写HelloWorld

  选择工具——>新建C++类
在这里插入图片描述

UE引擎会弹出选择父类的窗口:
在这里插入图片描述

  由于我们现在需要在启动的时候进行打印,所以新建一个继承GameModeBase的类:
在这里插入图片描述
在这里插入图片描述

  然后指定这个新的类的命名和保存路径,我这里就用默认的MyGameModeBase命名,然后点击创建类:
在这里插入图片描述

  创建了类之后,回去UE编辑器先编译一次。每天第一次运行UE编译都会很慢,但编译过第一次之后,就会变快一点。
  这时候,我们需要指定刚才新建的MyGameModeBase为默认的游戏模式:
在这里插入图片描述

  这样指定的意思是,假如当前的关卡没有指定特殊的GameMode,那么游戏运行的时候,就会执行我们指定的这个MyGameModeBase类。

五、 打印HelloWorld

  找到MyGameModeBase.h,增加一个StartPlay的定义:

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MyGameModeBase.generated.h"

/**
 * 
 */
UCLASS()
class MYDEMO_API AMyGameModeBase : public AGameModeBase
{
	GENERATED_BODY()
public:
	//定义StartPlay声明周期的方法
	virtual void StartPlay();
};

  然后找到MyGameModeBase.cpp,增加一个StartPlay生命周期方法的实现:

#include "MyGameModeBase.h"

void AMyGameModeBase::StartPlay()
{
	UE_LOG(LogTemp, Display, TEXT("Hello World!"));
}

这时候回到UE编辑器,编译C++,然后运行游戏,就会看到打印输出了:
在这里插入图片描述

六、 可能遇到的问题:

1、 缺少VS项目文件

如果VS项目文件不完整,可以找到C++项目文件里面的uproject文件,然后右键——Generate Visual Studio project files
在这里插入图片描述

2、 提示UnrealBuildTool找不到

  在编译的时候,如果提示

UnrealBuildTool.dll not found in
"…\Engine\Binaries\DotNET\UnrealBuildTo

  这就需要自己生成一下UnrealBuildTool。
  找到UE安装目录里面的UnrealBuildTool的C#项目,打开,然后构建一下就行:
在这里插入图片描述

3、 在Visual Studio里面编译失败

  我之前说过,我尽量是使用UE引擎里面的编译按钮来进行C++代码的编译。但如果想在VS里面编译C++,却又有报错,可以参考一下,要么把UE编辑器关掉再编译,要么把“启用实时代码编写”的选项去掉,然后再在VS里面编译。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文件夹重命名技巧:克服文件夹名混乱不规律的难题,实现高效管理

在数字时代,我们每天都在与无数的文件夹打交道。这些文件夹中可能存储着文档、图片、视频等各种类型的文件。然而,随着文件夹数量的增加,如何有效地管理和命名这些文件夹成为了一个挑战。混乱和不规律的文件夹名不仅降低了工作效率&#xff0…

237基于matlab的偏振态仿真

基于matlab的偏振态仿真,不同偏振态下光强计算。本仿真软件可以仿真波片对偏振光的相位调制过程。用户可以通过改变波片的类型,波片长轴与 X 轴的夹角,起偏器透光与 X 轴的夹角,检偏器透光轴与 X 轴的夹角等参数,来观察…

企业年中宣传的几个核心点

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 过了五一小长假,就来到了夏天,在生机勃勃的春天里,我们定好了全年的宣传计划,包括要举行哪些活动,参加哪些展会,一…

ADS过孔---过孔建模自动化

当前快速建模的方法有两类:一是脚本自动化,也就是今天要分享的方法,但该方法需要工程师有基本的脚本编辑能力,然后根据自己的需要去修改,难度较大一点点;二是参数化建模,也就是在GUI界面输入相应…

Milvus向量数据库(一)Milvus存储byte[]类型源向量数据

两种路线&#xff1a; 第一种是把byte[]转换为List< float >&#xff0c;然后存储到Milvus的floatVector中第二种是把byte[]转换为ByteBuffer&#xff0c;然后存储到Milvus的BinaryVector中 步骤&#xff1a; 我先用的是第一种&#xff0c;但是在转换float过程中&…

Java Stream A

1. Stream API概述 Java 8 Stream是Java 8中引入的一个新的API&#xff0c;用于处理集合和数组等数据结构的元素。它允许您在数据集上进行功能性操作&#xff0c;例如过滤、映射、排序等&#xff0c;而不需要编写循环或迭代器等底层代码。 Java 8 Stream与集合不同&#xff0c;…

信息系统项目管理师——成本管理计算专题(二)

绩效监测和成本预算 SV&#xff0c;CV&#xff0c;SPI&#xff0c;CPI都是以EV开头&#xff0c;用EV去减或者用EV去除&#xff0c;如果是S指标那么就是减 PV 或除PV&#xff0c;如果是C指标那么就是减AC 或除 AC。 如果题目只是问当前的进度或成本绩效状态&#xff0c;那么只需…

wangEditor 富文本详解

前言&#xff1a;wangEditor 官网 。本文档讲解 wangEditor 在 vue3 中的使用。 一&#xff1a;快速开始 1. 安装 需要安装 wangeditor/editor、wangeditor/editor-for-vuenext 两个依赖 # 安装 editor npm install wangeditor/editor # or yarn add wangeditor/editor # o…

【前端】输入时字符跳动动画实现

输入时字符跳动动画实现 在前端开发中&#xff0c;为了提升用户体验&#xff0c;我们经常需要为用户的交互行为提供即时的反馈。这不仅让用户知道他们的操作有了响应&#xff0c;还可以让整个界面看起来更加生动、有趣。本文将通过一个简单的例子讲解如何实现在用户输入字符时…

Linux实验 Linux操作基础

实验目的&#xff1a; 掌握Linux系统登录模式的切换&#xff1b;掌握Linux系统的注销与关闭&#xff1b;掌握Linux系统Shell简单命令&#xff1b;掌握Linux系统Shell命令的基础操作及高级操作。 实验内容&#xff1a; 在VMware中启动已经安装好的CentOS&#xff0c;在下图登录…

全域团购外卖怎么样,哪家全域运营系统好?

当前&#xff0c;全域团购外卖逐渐兴起&#xff0c;全域团购外卖怎么样等问题也逐渐成为人们热议的焦点。事实上&#xff0c;从理论上来说&#xff0c;全域团购外卖确实大有可为&#xff0c;全域团购外卖运营服务商的收益也非常值得期待&#xff01; 首先&#xff0c;就团购外卖…

测试人员在面试时的注意事项

一、技术方面面试 在某种程度上来说&#xff0c;技术面试重要到能够决定你是否被聘用。在技术岗位方面&#xff0c;在个人品德没有问题的前提下&#xff0c;招聘公司对技术是最关心的。 我现在并不能给你分析具体的面试题&#xff0c;因为与笔试题相比&#xff0c;面试题千变万…

封装js方法实现无缝循环滚动效果

如下图&#xff0c;又遇到了无缝循环滚动这个需求 突然想到我之前有分享过一篇关于这个的文章https://blog.csdn.net/chuenst/article/details/137125377&#xff0c;果断打开csdn准备cv 经过我一顿操作&#xff0c;很快实现了需求&#xff0c;但是这风扇直接嗡嗡转&#xff0c…

Dropout作为贝叶斯近似: 表示深度学习中的模型不确定性

摘要 深度学习工具在应用机器学习领域受到了极大的关注。然而&#xff0c;这些用于回归和分类的工具并没有捕捉到模型的不确定性。相比之下&#xff0c;贝叶斯模型提供了一个基于数学的框架来推理模型的不确定性&#xff0c;但通常会带来令人望而却步的计算成本。本文提出了一…

Vue3工程化配置

Vue3工程化配置 目录 Vue3工程化配置创建项目vue-clivite(推荐) 快速体验2和3的差别vue3vue2 ref和reactive 创建项目 vue-cli 具体环境配置请点这里 记得新建配置时这里选vue3 vite(推荐) 注&#xff1a;Vite 需要 Node.js 版本 18&#xff0c;20 1.选定路径后再cmd输入创建…

ScienceDirect文献如何下载

ScienceDirect是爱思唯尔公司的全文数据库平台&#xff0c;是全球最大的科学、技术与医学全文电子资源数据库&#xff0c;是我们在查找外文文献常用的数据库。但是&#xff0c;ScienceDirect数据库的文献是需要使用权限才可获取的。如果你没有该数据库资源要如何查询下载文献呢…

likeshop多商户单商户商城_likeshop跑腿源码_likeshop物品租赁系统开源版怎么配置小程序对接?

本人是商业用户所以能持续得到最新商业版&#xff0c;今天我说下likeshop里面怎么打包小程序&#xff0c;大家得到程序时候会发现它有admin目录 app目录 server目录 这三个目录分别是做什么呢&#xff1f; 1.admin目录 下面都是架构文件使用得是Node.js打包得&#xff0c;至于…

教你快速记录每日待办事项,并提醒自己按时完成不忘记

在忙碌的日常生活中&#xff0c;我们经常会面临待办事项繁杂、时间紧迫的困扰。为了更高效地管理时间和任务&#xff0c;我们需要一个能够快速记录并准时提醒我们完成待办事项的工具。此时&#xff0c;敬业签这类的待办软件就成为了很多人的首选工具。 敬业签是一款功能强大的…

信息系统项目管理师0091:项目经理的能力(6项目管理概论—6.3项目经理的角色—6.3.3项目经理的能力)

点击查看专栏目录 文章目录 6.3.3项目经理的能力1.概述2.项目管理技能3.战略和商务管理技能4.领导力技能5.领导力与管理记忆要点总结6.3.3项目经理的能力 1.概述 项目经理需要重点关注三个方面的关键技能包括项目管理、战略和商务、领导力

合肥先进光源束测步进电机控制机箱接线方式

合肥先进光源束测步进电机控制方案介绍 对上篇文里的接线方式做个修订&#xff1a; EtherCat电机控制机箱接线规范 驱动器 控制器 接线方式 使用鸣志 STF05-ECX-H驱动器&#xff0c;每个机箱配8个驱动器使用汇川的H5U-1614MTD etherCat控制器每个驱动器的电源从2分8的分配端子…