第 2 天:创建你的第一个 UE5 C++ 项目!

news/2025/2/3 16:50:27 标签: ue5, c++, unreal engine, 虚幻, 虚幻引擎, 学习

🎯 目标:

掌握 UE5 C++ 项目的创建流程,了解代码结构,并成功运行第一个 C++ 类!

1️⃣ 创建 UE5 C++ 项目

在 UE5 中,C++ 项目可以与蓝图(Blueprint)结合使用,让游戏逻辑更灵活。今天我们将创建一个 全新的 C++ 项目,并探索其基本结构。

🔹 新建 C++ 项目步骤

  1. 打开 Unreal Engine 5(启动 Epic Games Launcher → 选择 UE5)。
  2. 点击“创建新项目”,在项目类型中选择 游戏(Game)。
  3. 选择“空项目(Blank)”,确保是 C++ 项目(不要选蓝图)。
  4. 启用 Starter Content(包含基础素材),方便后续使用。
  5. 设定项目名称(如 MyFirstCppGame),选择保存路径,点击 创建(Create)。
  6. 等待 UE5 加载,默认会自动打开 Visual Studio,准备进行 C++ 开发! 🎮
    在这里插入图片描述

✅ 成功创建 C++ 项目后,你的开发环境已经准备就绪! 🚀

2️⃣ UE5 C++ 项目结构解析

创建项目后,我们的工程目录会包含多个关键文件夹:

文件夹作用
Source/存放所有 C++ 代码
Source/MyFirstCppGame/游戏的主 C++ 代码文件夹
Source/MyFirstCppGame/MyFirstCppGame.Build.cs项目编译设置
Config/配置文件(游戏启动参数等)
Content/资源文件(材质、模型、声音等)
Binaries/编译后的二进制文件
Intermediate/临时文件(无需手动修改)
Saved/项目保存的临时数据

其中,Source 文件夹最重要,是我们编写 C++ 代码的地方。

3️⃣ 创建并运行你的第一个 C++ 类

🔹 创建 C++ 类

  1. 在 UE5 中,点击“工具” → “新建 C++ 类”。
  2. 选择 Actor 作为基类(它是 UE5 世界中的基本对象)。
  3. 命名为 MyFirstActor,点击 创建并添加到项目。
  4. 等待 UE5 自动生成 C++ 代码并打开 Visual Studio。

4️⃣ 修改 C++ 代码

打开 MyFirstActor.cpp 并编辑 BeginPlay() 方法,让它在游戏启动时打印一条消息:

📌 MyFirstActor.h(头文件)

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyFirstActor.generated.h"

UCLASS()
class MYFIRSTCPPGAME_API AMyFirstActor : public AActor
{
    GENERATED_BODY()

public:	
    AMyFirstActor();

protected:
    virtual void BeginPlay() override;
};

📌 MyFirstActor.cpp(实现文件)

#include "MyFirstActor.h"
#include "Engine/Engine.h"

AMyFirstActor::AMyFirstActor()
{
    PrimaryActorTick.bCanEverTick = true;
}

void AMyFirstActor::BeginPlay()
{
    Super::BeginPlay();

    // 在控制台和输出日志中打印 "Hello Unreal Engine C++!"
    UE_LOG(LogTemp, Warning, TEXT("Hello Unreal Engine C++!"));
}

5️⃣ 编译 & 运行

🔹 编译 C++ 代码

  1. 返回 UE5,点击右下角的 编译按钮
    在这里插入图片描述
  2. 等待编译完成,如果没有报错,则说明 C++ 代码已正确编译!

🔹 在场景中使用 C++ Actor
4. 回到 UE5 编辑器,打开 “世界大纲(World Outliner)” 窗口。
5. 找到 MyFirstActor 并拖入场景。
6. 点击 “播放(Play)”,然后打开左下角的 输出日志(Output Log),可以看到:

LogTemp: Warning: Hello Unreal Engine C++!

✅ 你成功创建并运行了你的第一个 UE5 C++ 类!🎉

6️⃣ 常见问题 & 解决方案

问题解决方案
项目创建失败确保 Visual Studio 2022 已安装,并包含 C++ 开发组件
编译失败在 UE5 中 点击“工具”→“刷新 Visual Studio 项目”
C++ 代码修改后无效重新编译(Ctrl + Shift + B),并重启 UE5
UE_LOG 没有输出确保打开输出日志窗口(Window → Developer Tools → Output Log)

🎯 总结:今天你学到了什么?

✅ 创建 UE5 C++ 项目
✅ 了解项目结构(Source、Config、Content 等)
✅ 编写并运行你的第一个 C++ Actor
✅ 使用 UE_LOG 在日志中输出信息

👏 恭喜你完成 UE5 C++ 项目创建 任务!🎮 明天我们将深入 Actor 类的原理与用法,带你掌握 UE5 C++ 的核心开发模式!🚀

📌 记得收藏专栏,每天进步一点,最终独立开发自己的 UE5 游戏!🔥


http://www.niftyadmin.cn/n/5840917.html

相关文章

Android 音视频编解码 -- MediaCodec

引言 如果我们只是简单玩一下音频、视频播放,那么使用 MediaPlayer SurfaceView 播放就可以了,但如果想加个水印,加点其他特效什么的,那就不行了; 学习 Android 自带的硬件码类 – MediaCodec。 MediaCodec 介绍 在A…

代码练习2.3

终端输入10个学生成绩&#xff0c;使用冒泡排序对学生成绩从低到高排序 #include <stdio.h>void bubbleSort(int arr[], int n) {for (int i 0; i < n-1; i) {for (int j 0; j < n-i-1; j) {if (arr[j] > arr[j1]) {// 交换 arr[j] 和 arr[j1]int temp arr[…

unity中的动画混合树

为什么需要动画混合树&#xff0c;动画混合树有什么作用&#xff1f; 在Unity中&#xff0c;动画混合树&#xff08;Animation Blend Tree&#xff09;是一种用于管理和混合多个动画状态的工具&#xff0c;包括1D和2D两种类型&#xff0c;以下是其作用及使用必要性的介绍&…

蓝桥杯例题六

奋斗是一种态度&#xff0c;也是一种生活方式。无论我们面对什么样的困难和挑战&#xff0c;只要心怀梦想&#xff0c;坚持不懈地努力&#xff0c;就一定能够迈向成功的道路。每一次失败都是一次宝贵的经验&#xff0c;每一次挫折都是一次锻炼的机会。在困难面前&#xff0c;我…

注解(Annotation)

注解&#xff08;Annotation&#xff09;在 Java 中可以用来简化类的使用&#xff0c;使得被注解的类能够被自动发现、自动创建并在需要的地方直接调用&#xff0c;而不需要手动创建实例。具体来说&#xff0c;注解是用来标识类、方法、字段等的&#xff0c;它们通常与一些框架…

扩散模型(一)

在生成领域&#xff0c;迄今为止有几个主流的模型&#xff0c;分别是 GAN, VAE&#xff0c;Flow 以及 Diffusion 模型。 GAN&#xff1a;GAN 的学习机制是对抗性学习&#xff0c;通过生成器和判别器的对抗博弈来进行学习&#xff0c;这种竞争机制促使生成器不断提升生成能力&a…

基于开源2 + 1链动模式AI智能名片S2B2C商城小程序的内容创作与传播效能探究

摘要&#xff1a;本文围绕开源2 1链动模式AI智能名片S2B2C商城小程序&#xff0c;深入探讨在其应用场景下内容创作与传播效果的关键要素——转发数与转化率。通过剖析如何创作引发用户共鸣、提升用户信任的内容&#xff0c;阐明深度思考内容本质对于实现有效传播的重要性&…

XML DOM 节点信息

nodeName、nodeValue 和 nodeType 属性包含有关节点的信息。 尝试一下 - 实例 下面的实例使用 XML 文件 books.xml。 函数 loadXMLDoc()&#xff0c;位于外部 JavaScript 中&#xff0c;用于加载 XML 文件。 获取元素节点的节点名称 本例使用 nodeName 属性来获取 "book…