当前位置: 首页 > news >正文

UnLua调用C++函数

一、UnLua调用C++全局静态函数
1、新建C++类MyLuaUtils,继承BlueprintFunctionLibrary,实现全局静态函数GetInt。
MyLuaUtils.h

UCLASS()
class LUASHOOTING_API UMyLuaUtils : public UBlueprintFunctionLibrary
{GENERATED_BODY()UFUNCTION(BlueprintCallable)static int GetInt();	
};

MyLuaUtils.cpp

#include "MyLuaUtils.h"
int UMyLuaUtils::GetInt()
{return 100;
}

2、修改《UnLua环境搭建》一文中的WBP_FirstLua脚本,调用MyLuaUtiles.GetInt函数。
WBP_FirstLua.lua

local WBP_FirstLua_C = UnLua.Class()
function WBP_FirstLua_C:Construct()print('Hello UnLua:'..UE4.UMyLuaUtils.GetInt())
end
return WBP_FirstLua_C

3、运行查看Log。
在这里插入图片描述
二、UnLua调用C++成员函数
1、新建C++类MyBaseActor,继承Actor,实现GetIndex成员函数。
MyBaseActor.h

UCLASS()
class LUASHOOTING_API AMyBaseActor : public AActor
{GENERATED_BODY()public:	AMyBaseActor();protected:virtual void BeginPlay() override;public:	virtual void Tick(float DeltaTime) override;UFUNCTION(BlueprintCallable)int GetIndex();private:int index;
};

MyBaseActor.cpp

int AMyBaseActor::GetIndex()
{return index++;
}

2、新建蓝图类BP_BaseActor,继承C++类MyBaseActor,绑定Lua脚本BP_BaseActor.lua。
BP_BaseActor.lua

local BP_BaseActor_C = UnLua.Class()function BP_BaseActor_C:ReceiveTick(DeltaSeconds)print("Index:" .. self:GetIndex())endreturn BP_BaseActor_C

3、将蓝图BP_BaseActor拖到场景中创建一个实例,运行查看Log,每帧都在成功输出
在这里插入图片描述


http://www.mrgr.cn/news/22072.html

相关文章:

  • 嵌入式秋招面试 学习 面试经验提醒和分享
  • 活期存款类型
  • 物联网之ESP32开发板简介、Arduino
  • 01 Docker概念和部署
  • 【重学 MySQL】十七、比较运算符的使用
  • Python画笔案例-038 绘制齿形图
  • Arch - 架构安全性_认证(Authentication)的标准和实现
  • FreeRTOS-基本介绍和移植STM32
  • 【论文编写】利用在线工具生成表格图片的Latex语句
  • k8s笔记
  • 小白也能看得懂!如何在浏览器插件的文件中合法引入第三方依赖远程代码?
  • 开放式耳机好用?平价开放式耳机推荐?四款开放式的蓝牙耳机推荐
  • vcpkg子包路径批量获取
  • 新160个crackme - 051-Keygenning4newbies
  • 大量数据相似度加速计算
  • 【Spring基础1】- Spring 启示录-理解IoC控制反转
  • NX Unigraphics发展简史及下载
  • 使用ChatGPT润色论文的10大分步技巧,效果立竿见影
  • FreeRTOS内部机制学习02(消息队列深度学习)
  • RLVF:避免过度泛化地从口头反馈中学习