虚幻C++基础知识和UBT
2024年1月7日 2024年1月11日
虚幻C++基础知识
命名规则
- | |
---|---|
变量和函数 | 首字母大写 |
枚举类 | E打头 |
结构体 | F打头 |
继承体系中的类 | A打头 |
模板类 | T打头 |
委托类型 | F打头,Signature结尾 |
常用基础类型
1uint8 c; 2uint32 a; 3int32 b;
拿int32类型举例说明: 在不同平台编译时,该类型始终占4个字节
强制类型转换
Cast
将基类转换成派生类
1AGeometryObject *Geometry = Cast<AGeometryObject>(Actor);
UBT
UnrealBuildTool
使用UnrealBuildTool时,依赖很多第三方工具,下载引擎时,虚幻引擎有把这些工具打包,并在脚本里指定了路径
如果是Windows系统,直接使用UBT问题不大
macOS中,建议将脚本和编辑器结合使用
路径
macOS
- | |
---|---|
UBT | EpicGames/UE_5.1/Engine/Binaries/DotNET/UnrealBuildTool/ |
封装了UBT使用的脚本 | EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac/ |
UE项目文件 | 5.1.1/TheBasics/TheBasics.uproject |
使用UBT生成项目相关文件
在uproject文件同级目录生成工程文件
在macOS上直接使用UBT,需要安装dotnet 6.0 Runtime
创建默认源码编辑器的工程文件
1#!/bin/bash 2UBT="EpicGames/UE_5.1/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool" 3Project="Projects/5.1.1/TheBasics/TheBasics.uproject" 4 5EngineCCDst="EpicGames/UE_5.1/compile_commands.json" 6EngineCCSrc="EpicGames/UE_5.1/.vscode/compileCommands_Default.json" 7 8ProjectCCDst="Projects/5.1.1/TheBasics/compile_commands.json" 9ProjectCCSrc="Projects/5.1.1/TheBasics/.vscode/compileCommands_TheBasics.json" 10 11# 生成默认Source Code Editor的工程文件 12$UBT -projectfiles -project="$Project" -game -rocket -progress 13 14# 生成VSCode工程文件 15$UBT -projectfiles -project="$Project" -game -rocket -progress -VSCode 16 17# 生成XCode工程文件 18$UBT -projectfiles -project="$Project" -game -rocket -progress -XCodeProjectFiles 19 20cp $EngineCCSrc $EngineCCDst 21cp $ProjectCCSrc $ProjectCCDst
指定源码编辑器
配置项 | |
---|---|
VS Code | -VSCode |
XCode | -XCodeProjectFiles |
ShooterGame项目脚本
仅供参考
1#!/bin/bash 2Script="EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac" 3GenerateProjectFilesScript=$Script"/GenerateProjectFiles.sh" 4BuildScript=$Script"/Build.sh" 5 6Project="Projects/Examples/ShooterGame/ShooterGame.uproject" 7 8# 生成VSCode工程文件 9$GenerateProjectFilesScript -projectfiles -project="$Project" -game -rocket -progress -VSCode 10 11# 编译 12$BuildScript ShooterGameEditor Mac Development "$Project" -waitmutex -NoHotReload
TheBasics脚本
仅供参考
1#!/bin/bash 2Script="EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac" 3GenerateProjectFilesScript=$Script"/GenerateProjectFiles.sh" 4BuildScript=$Script"/Build.sh" 5 6Project="Projects/5.1.1/TheBasics/TheBasics.uproject" 7 8# 生成VSCode工程文件 9$GenerateProjectFilesScript -projectfiles -project="$Project" -game -rocket -progress -VSCode 10 11EngineCCDst="EpicGames/UE_5.1/compile_commands.json" 12EngineCCSrc="EpicGames/UE_5.1/.vscode/compileCommands_Default.json" 13 14ProjectCCDst="Projects/5.1.1/TheBasics/compile_commands.json" 15ProjectCCSrc="Projects/5.1.1/TheBasics/.vscode/compileCommands_TheBasics.json" 16 17cp $EngineCCSrc $EngineCCDst 18cp $ProjectCCSrc $ProjectCCDst 19 20# 编译 21$BuildScript TheBasicsEditor Mac Development "$Project" -waitmutex -NoHotReload 22 23# 在虚幻编辑器中打开项目 24open $Project