写一个 .bat,如:
PackPlugin.bat
bash
:: 引擎目录
set UEPath=C:/ue/UnrealEngine-5.7.1-release
:: 工程目录
set ProjectPath=D:/A1/Client/A1
:: 输出目录
set OutputDir=D:/A1/Pack/Plugins
"%UEPath%/Engine/Build/BatchFiles/RunUAT.bat"^
BuildPlugin^
-Plugin="%ProjectPath%/Plugins/XY/XY_Time/XY_Time.uplugin"^
-Package="%OutputDir%"/XY_Time^
-TargetPlatforms=Win64
-Rocket
找到打包出来的插件,删掉 Source 下的 Private 文件夹,就可以了。如示例中的 Private 在 D:\A1\Pack\Plugins\XY_Time\Source\XY_Time\Private。
打开 .Build.cs,添加以下代码。
cs
bUsePrecompiled = true;
示例中的 XY_Time.Build.cs 为:
cs
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
public class XY_Time : ModuleRules
{
public XY_Time(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
PublicIncludePaths.AddRange(
new string[] {
// ... add public include paths required here ...
}
);
PrivateIncludePaths.AddRange(
new string[] {
// ... add other private include paths required here ...
}
);
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
"CoreUObject",
"Engine"
// ... add other public dependencies that you statically link with here ...
}
);
PrivateDependencyModuleNames.AddRange(
new string[]
{
// ... add private dependencies that you statically link with here ...
}
);
DynamicallyLoadedModuleNames.AddRange(
new string[]
{
// ... add any modules that your module loads dynamically here ...
}
);
bUsePrecompiled = true;
}
}
这样,插件就打包成功了。
如果插件和别的插件有依赖,将依赖插件打包后放到引擎的 /Engine/Plugins 目录下即可。