UE4C++扩展Python

新建一个Plugin 选择蓝图库模板(最好都以插件形式)

image.png

然后得到这样的目录(命令用到其他模块记得去.Build.cs里加载,不然会编译错误)

image.png

image.png

然后在TestPythonBPLibrary.h里写上一个静态函数

static void PrintStringTest(FString MyString);

再加个UFUNCTION()(让UE4反射系统识别C ++函数,实际是暴露给蓝图,但是暴露给蓝图等于开放给了Python)

UFUNCTION(BlueprintCallable)
    static void PrintStringTest(FString MyString);
image.png

在Cpp里写实现

void UTestPythonBPLibrary::PrintStringTest(FString MyString)
{
    if (GEngine)
    {
        GEngine->AddOnScreenDebugMessage(-1, 10.f, FColor::Red, MyString);
    }
}
image.png

然后生成,调试项目

import unreal
unreal.TestPythonBPLibrary.print_string_test("萌新小强")
image.png
image.png

成功,这样就能写一些,Python操作不了的功能了

新建其他类的时候都是大同小异,继承至UBlueprintFunctionLibrary
在头上添加UCLASS的标识,类名要以U开头

UCLASS()
class UTestPythonBPLibrary : public UBlueprintFunctionLibrary
{
    GENERATED_UCLASS_BODY()

这两个函数看注释就能明白

void FTestPythonModule::StartupModule()
{
    // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
    
}

void FTestPythonModule::ShutdownModule()
{
    // This function may be called during shutdown to clean up your module.  For modules that support dynamic reloading,
    // we call this function before unloading the module.
    
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近学习虚幻4,先跟着教程学习做个《吃豆人》小游戏,熟悉下引擎里的一些基本概念。 下面回顾一下学习过程。 引擎版本...
    静静静静静_4fba阅读 1,137评论 0 0
  • C++调用python 在C/C++中嵌入Python,可以使用Python提供的强大功能,通过嵌入Python可...
    Bruce_Szh阅读 14,039评论 1 7
  • 这篇文章想讨论一个什么话题?我们讨论一种方法——兼顾编译语言的性能,同时又能保留动态语言的灵活性。我们想实现一个插...
    Benson666阅读 3,850评论 1 0
  • 本文整理2019年收集到的,ue4杂乱的小知识点 1. 控制台设置分辨率 可以用于锁帧t.maxfps 20 2....
    天剑行风阅读 3,835评论 0 1
  • C++类和对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心...
    863cda997e42阅读 780评论 0 4

友情链接更多精彩内容