我的虚幻引擎5.6创建的一个第一人称游戏类项目为什么我在更改项目的游戏模式在地图和模式的默认游戏模式下面找不到我新建的蓝图?(默认的游戏模式也是none,是不是项目编译错了,vs2022里面创建的C++类是直接编译吗?)
就是按ue5官方教程做的


我项目编译的时候是右键AdventureGame点的生成,这样编译对吗?

我的虚幻引擎5.6创建的一个第一人称游戏类项目为什么我在更改项目的游戏模式在地图和模式的默认游戏模式下面找不到我新建的蓝图?(默认的游戏模式也是none,是不是项目编译错了,vs2022里面创建的C++类是直接编译吗?)
就是按ue5官方教程做的


我项目编译的时候是右键AdventureGame点的生成,这样编译对吗?

晚上好🌙🌙🌙
本答案参考通义千问
你提到的问题是关于 虚幻引擎 5.6 中,创建了一个第一人称游戏类项目后,在“地图和模式”(Map and Modes)中找不到你新建的蓝图作为“默认游戏模式”。这个问题可能涉及多个方面,包括项目设置、蓝图编译、C++类生成以及游戏模式的配置。
你的项目是基于 C++ 创建的第一人称模板项目吗?
First Person 模板)创建的项目,并且使用了 Visual Studio 2022 编译项目,那么你需要确保 C++ 类正确生成并被引擎识别。“默认游戏模式”选项为空或没有你新建的蓝图
是否在 Visual Studio 中正确编译了项目?
.sln 文件。MyGameMode、MyPlayerController)已经生成。.cpp 和 .h 文件。注意: 仅执行 Generate Project Files 不会编译代码,必须执行 Build Solution 才能将 C++ 类加载到引擎中。
AGameModeBase,例如:// MyGameMode.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MyGameMode.generated.h"
UCLASS()
class MYPROJECT_API AMyGameMode : public AGameModeBase
{
GENERATED_BODY()
public:
AMyGameMode();
};
// MyGameMode.cpp
#include "MyGameMode.h"
AMyGameMode::AMyGameMode()
{
// 设置默认的玩家控制器
DefaultPawnClass = AMyCharacter::StaticClass();
PlayerControllerClass = AMyPlayerController::StaticClass();
}
MyProject.Build.cs 中添加了对 GameFramework 的引用:PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "GameFramework" });
如果这里没有你创建的类,可能是以下原因:
BP_MyGameMode| 问题 | 原因 | 解决方法 | |------|------|----------| | 游戏模式未显示 | C++ 类未编译或未正确生成 | Build Solution,检查类定义和头文件 | | 蓝图未显示 | 蓝图类型错误或未保存 | 使用 Game Mode Base 创建蓝图,保存后刷新 | | 项目设置错误 | 默认游戏模式未设置 | 在 Project Settings 中设置正确的 Game Mode |
如果你是按照官方教程做的,那么请按以下步骤操作:
// MyGameMode.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MyGameMode.generated.h"
UCLASS()
class MYPROJECT_API AMyGameMode : public AGameModeBase
{
GENERATED_BODY()
public:
AMyGameMode();
};
// MyGameMode.cpp
#include "MyGameMode.h"
AMyGameMode::AMyGameMode()
{
// 设置默认玩家角色
DefaultPawnClass = AMyCharacter::StaticClass();
PlayerControllerClass = AMyPlayerController::StaticClass();
}
如果你仍然无法解决问题,可以提供更详细的项目结构信息或截图,我可以进一步帮你定位问题。