0,前言
这篇文章笔记比较简略,大部分的操作都是和上一篇文章重复了,建议先看上一节文章,直达电梯:UE4 手把手教你做插件(1) 从代码引用插件_asiwxy的博客-CSDN博客UE4 手把手教你创建插件https://blog.csdn.net/asiwxy/article/details/129082592?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129082592%22%2C%22source%22%3A%22asiwxy%22%7D
我看的是 技术宅阿棍儿 的视频,B站有。
系列视频:从代码引用插件_哔哩哔哩_bilibili
上一节我们完成绿色的线条,从游戏模块调用了第三方插件的代码。
本节主要是为了说明游戏和插件两边都可以创建很懂模块,并且各个模块之间可以相互依赖。
注意:要记住各个模块的名字,红线的顺序就是函数调用的顺序,绿线就是我们上一节的内容
1,创建两个新的模块
(1)拷贝代码
视频建议是直接拷贝,拷贝源是MyThirdPlugin2模块
视频作者的代码链接:Leon/PluginAndSlate
注意拷贝完代码之后,需要修改。
(2)代码修改
1,.cs文件修改
UE4_PluginAndSlate.Build.cs
UE4_PluginAndSlate.Target.cs
UE4_PluginAndSlateEditor.Target.cs
AnotherGame.Build.cs
Another.Build.cs
2,MyGameModeBase.cpp
将UThirdLibInvoker换成UAnotherGameInvoker
void AMyGameModeBase::BeginPlay() { Super::BeginPlay(); UAnotherGameInvoker* Lib = NewObject<UAnotherGameInvoker>(); Lib->InvokeLib(); }
3,AnotherGameInvoker.h
UCLASS() class ANOTHERGAME_API UAnotherGameInvoker : public UObject { GENERATED_BODY() public: void InvokeLib(); };
注意:ANOTHERGAME_API这个宏要更改为:模块名_API,不然编译的时候会报:dll链接错误
4,AnotherInvoker.h
UCLASS() class ANOTHER_API UAnotherInvoker : public UObject { GENERATED_BODY() public: void InvokeLib(); };
注意:ANOTHER_API这个宏要更改为:模块名_API,不然编译的时候会报:dll链接错误