UE5 自定义插件Source文件夹代码整理避坑
通过UE添加插件
将会在UE项目目录中出现 Plugins文件夹,假定你的插件叫做 MyPlugin,那么就会生成 Plugins/MyPlugin 这个目录。
在 MyPlugin 当中,会有和UE项目相似的结构,包括 Content、Resources、Source等等,此外还有一个 .uplugin 文件。
!! 注意 !!
- Source 文件夹当中,存放的就是插件代码,每个代码按照 Module 也就是模块来存放。自己的整理就从这里入手
- .uplugin 可以理解为UE5的插件编码文件,里面是一些插件信息,以及 Module 部分,这也是整理过程当中需要注意的
整体的目录初始结构如下:
- MyUEProject
|___ Binaries
|___ Config
|___ ...
|___ Plugins
|___ MyPlugin // 插件目录
|___ Content
|___ ...
|___ Source // 按模块存放代码,初始模块默认为插件名
|___ MyPlugin
|___ Private // 存放 MyPlugin.cpp ,模块初始化文件,*** 很重要 ***
|___ Public // 存放 MyPlugin.h ,模块初始化文件,*** 很重要 ***
|___ MyPlugin.Build.cs // 该文件用于添加额外库目录等,*** 很重要 ***
|___ MyPlugin.uplugin
其中,MyPlugin.h
文件内容如下:
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"
class FMyPluginModule : public IModuleInterface
{
public:
/** IModuleInterface implementation */
virtual void StartupModule() override;
virtual void ShutdownModule() override;
};
注意,这里 class
的命名是有要求的!!!FMyPluginModule
需要拆分成 F
+ MyPlugin
+ Module
的格式,也就是必须以 F 开头,紧接着是这个模块(Module)的名字,这里默认是插件名,然后跟上 Module表示模块,其他内容默认即可。
然后是 MyPlugin.cpp
文件:
// Copyright Epic Games, Inc. All Rights Reserved.
#include "MyPlugin.h"
#define LOCTEXT_NAMESPACE "FMyPluginModule"
void FMyPluginModule::StartupModule()
{
// This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
}
void FMyPluginModule