初始化ShootThemUp项目
2023年6月11日 2024年1月11日
说明
虚幻编辑器
将 ShooterGame
作为内容包,基于此开发 ShootThemUp
好比室内设计师提供游戏资料,我们在此之上开发游戏
创建ShootThemUp项目
Blank
Blueprint
配置ShootThemUp
添加版权信息
项目设置 > Project > Description > Legal > Copyright Notice
Shoot Them Up Game, All Rights Reserved.
关卡设置
- 添加关卡文件夹
Content/Levels
- 创建关卡
-
新建关卡
-
选择
Basic
-
保存到
Content/Levels/
,命名为DefaultMap
-
- 设置
EditorStartupMap
和GameDefaultMap
使用DefaultMap
项目设置 > Project > Maps & Modes
从ShooterGame导入资产
ShooterGame导出
-
打开ShooterGame项目, 在内容浏览器选中
Content/Animations/TTP_Animations
, 右键, 选择Migrate
-
取消Sounds勾选
默认勾选的文件夹里的内容都与
TTP_Animations
相关 -
保存到
ShootThemUp/Content
目录下
不能直接迁移到5.1.1/ShootThemUp/Content/ExternalContent
,虚幻引擎会检查目录,要求这些资产的上级目录是Content
,即使根目录是Content
也无法通过检查
ShootThemUp导入
-
添加外部资产文件夹和本章资产文件夹
Content/ExternalContent
Content/ExternalContent/Animation
-
通过虚幻编辑器,将
Content
目录下的Animations
Characters
Environment
移动到ExternalContent/Animation
目录下
不能在外部直接将三个文件夹移动到目的文件夹中,会导致资产之间的相互引用路径出错 -
为
ExternalContent
设置文件夹颜色
选中Content/ExternalContent
, 右键, 选择Set Color
-
为
ExternalContent/Animation
设置文件夹颜色 -
效果图
基于蓝图创建C++项目
添加C++类即可
创建蓝图项目的时间开销明显小于创建C++项目
创建GameModeBase类
-
Tools > New C++ Class..
-
STUGameModeBase
未设置类属性
建议为STUGameModeBase设置类属性Public -
Content同级目录出现C++ Classes文件夹
设置关卡使用STUGameModeBase
查看项目源码中的版权信息
不使用预编译头文件
ShootThemUp: ShootThemUp.Build.cs
1// PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; 2PCHUsage = PCHUsageMode.NoPCHs;
脚本
编译项目
Build.sh
1#!/bin/bash 2 3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject" 4BuildScript="EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac/Build.sh" 5Target="ShootThemUpEditor" 6 7$BuildScript $Target Mac Development $Project -waitmutex -NoHotReload
打开虚幻编辑器
Editor.sh
1#!/bin/bash 2 3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject" 4UnrealEditor="EpicGames/UE_5.1/Engine/Binaries/Mac/UnrealEditor.app" 5 6open -a $UnrealEditor $Project
生成项目文件
ProjectFiles.sh
1#!/bin/bash 2 3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject" 4GenerateProjectFilesScript="EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh" 5 6EngineCCDst="EpicGames/UE_5.1/compile_commands.json" 7EngineCCSrc="EpicGames/UE_5.1/.vscode/compileCommands_Default.json" 8ProjectCCDst="Projects/5.1.1/ShootThemUp/compile_commands.json" 9ProjectCCSrc="Projects/5.1.1/ShootThemUp/.vscode/compileCommands_ShootThemUp.json" 10 11GenerateXCode() 12{ 13 $GenerateProjectFilesScript -projectfiles -project=$Project -game -rocket -progress -XCodeProjectFiles 14} 15 16GenerateVSCode() 17{ 18 $GenerateProjectFilesScript -projectfiles -project=$Project -game -rocket -progress -VSCode 19 cp $EngineCCSrc $EngineCCDst 20 cp $ProjectCCSrc $ProjectCCDst 21} 22 23# GenerateXCode 24GenerateVSCode