六一的部落格


关关难过关关过,前路漫漫亦灿灿。




虚幻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

虚幻C++基础知识和UBT



虚幻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