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

UnLua扩展C++函数和蓝图自定义事件

一、通过BlueprintImplementableEvent标记扩展C++函数
1、 这个标记表示C++不需要实现,让蓝图/Lua重写。
2、首先在C++中将LuaImp函数标记为BlueprintImplementableEvent,不需要实现,然后再GetIndex中调用该函数。
MyBaseActor.h

UFUNCTION(BlueprintImplementableEvent)
void LuaImp();
UFUNCTION(BlueprintCallable)
int GetIndex();

MyBaseActor.cpp

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

2、在Lua中重写LuaImp函数
BP_BaseActor.lua

 --实现C++中定义的BluprintImplementable方法function BP_BaseActor_C:LuaImp()print("this is a function implements C++")end

3、在Lua中调用GetIndex函数,即可执行到Lua中扩展的LuaImp函数
WBP_FirstLua.lua

Actor:GetIndex()

二、通过BlueprintNativeEvent标记扩展C++函数
1、BlueprintNativeEvent也是让蓝图/Lua重写扩展,但是C++端会提供一个默认的函数名为LuaNative_Implementation实现,如果蓝图/Lua没有重写,就执行默认的
2、首先在C++中将LuaNative函数标记为BlueprintNativeEvent,再实现一个LuaNative_Implementation函数。
MyBaseActor.h

	UFUNCTION(BlueprintNativeEvent)void LuaNative();void LuaNative_Implementation();

3、在GetIndex函数中调用LuaNative,在LuaNative_Implementation中调用LuaImp。
MyBaseActor.cpp

void AMyBaseActor::LuaNative_Implementation()
{LuaImp();
}
int AMyBaseActor::GetIndex()
{LuaNative();return index++;
}

4、在Lua中调用GetIndex
WBP_FirstLua.lua

Actor:GetIndex()

5、如果在Lua中没有重写LuaNative函数,则会调用C++中的LuaNative_Implementation中LuaImp函数,输出“this is a function implements C++”
6、如果在Lua中重写了LuaNative函数,就会调用Lua中的LuaNative函数,输出“Native Event”
BP_BaseActor.lua

  function BP_BaseActor_C:LuaNative()print("Native Event")end

三、Lua扩展蓝图自定义事件
1、在蓝图中新建自定义事件并在EventBeginPlay中调用
在这里插入图片描述
2、在Lua中重写BP_EventTest函数,需要注意的是Lua中把ReceiveBeginPlay函数注释掉,蓝图的EventBeginPlay才会生效。
BP_BaseActor.lua


-- function BP_BaseActor_C:ReceiveBeginPlay()
-- endfunction BP_BaseActor_C:BP_EventTest()print("BP_EventTest")end

相关文章:

UnLua扩展C++函数和蓝图自定义事件

一、通过BlueprintImplementableEvent标记扩展C函数 1、 这个标记表示C不需要实现,让蓝图/Lua重写。 2、首先在C中将LuaImp函数标记为BlueprintImplementableEvent,不需要实现,然后再GetIndex中调用该函数。 MyBaseActor.h UFUNCTION(Bluepr…...

干耳屎硬掏不出来怎么办?质量最好的可视挖耳勺推荐

很多干耳的小伙伴都会用普通耳勺来掏耳朵。由于普通耳勺由于其盲操作的特性,对于耳道非直线结构的清理存在诸多不便。所以市面上出现了可视挖耳勺,让我们清晰的看到自己耳道,更加安全的清洁耳朵。,可视挖耳勺这款产品在市场上越来…...

谷歌 Chrome 最新版升级:更强的安全检查功能守护你的上网安全

谷歌 Chrome 浏览器产品经理 Andrew Kamau 在最新发布的博文中宣布,Chrome 浏览器迎来了新一轮的安全升级。新版 Chrome 在后台自动运行安全检查功能,采取了额外的主动措施来保障用户的安全。 自动撤销通知权限 新版 Chrome 浏览器采用了一项基于谷歌安…...

深度学习自编码器 - 收缩自编码器(CAE)篇

序言 在深度学习的浪潮中,收缩自编码器( Compressive Autoencoder, CAE \text{Compressive Autoencoder, CAE} Compressive Autoencoder, CAE)作为自编码器的一种高级形式,正逐步崭露头角。收缩自编码器在保留自编码器核心功能—…...

Dubbo与SpringCloud的区别和优缺点

经常会有同学问我,Dubbo和SpringCloud的选择。甚至也经常会有面试官就这个问题刨根问底。 说实话,其实我不太喜欢回答这个问题,本质上来讲,Dubbo的SpringCloud可以算是完全不同赛道的两种东西,就好像问大家西瓜和土豆我…...

★ C++进阶篇 ★ 多态

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将继续和大家一起学习C进阶篇第二章----多态 ~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页&#xff1a;椎名澄嵐-CSDN博客 C基础篇专栏&#xff1a;★ C基础篇 ★_椎名澄嵐的博客-CSDN博客 …...

pg入门3—详解tablespaces2

pg默认的tablespace的location为空&#xff0c;那么如果表设置了默认的tablespace&#xff0c;数据实际上是存哪个目录的呢? 在 PostgreSQL 中&#xff0c;如果你创建了一个表并且没有显式指定表空间&#xff08;tablespace&#xff09;&#xff0c;或者表空间的 location 为…...

python 爬虫 selenium 笔记

todo 阅读并熟悉 Xpath, 这个与 Selenium 密切相关、 selenium selenium 加入无图模式&#xff0c;速度快很多。 from selenium import webdriver from selenium.webdriver.chrome.options import Options# selenium 无图模式&#xff0c;速度快很多。 option Options() o…...

git分支管理的一些常用规范

一、分支命名规范 1.通常项目经理或者需求方会给需求开发做计划&#xff0c;约定一些编码&#xff0c;例如FN-01。此时这个需求指派给你&#xff0c;这个时候你可以在现有代码仓库的maser分支或者其他约定的开发分支checkout到本地&#xff0c;命名这个需求的开发分支为feat/F…...

GPT-4论文阅读

GPT-4 Technical Report论文阅读 文章目录 GPT-4 Technical Report论文阅读 Abstract训练的稳定性Training processPredictable scaling训练的稳定性多么难能可贵 Capabilities考试成绩传统的benchmark语言方面的能力Visual inputsSteerability LimitationsRisks & mitigat…...

this 指向

this 指向谁? 多数情况下,this 指向调用它所在方法的那个对象。 说得更通俗点,谁调的函数,this 就归谁。当调用方法没有明确对象时,this 就指向全局对象。在浏览器中,指向 window;在 Node 中,指向 Global。(严格模式下,指向 undefined) this 的指向是在调用时决定的…...

【贪心算法】贪心算法一

贪心算法一 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.柠檬水找零 题目…...

windnd.hook_dropfiles中的create_buffer值太小无法拖放长文件名

今天在使用我之前的Python识别拖放的PDF文件再转成文本文件-CSDN博客发现&#xff0c;文件藏在路径太深入的地方&#xff0c;不能打开&#xff0c;因为拖放文件只能读取260个字节的文件名&#xff08;b’路径&#xff09;&#xff0c;再查看windnd.hook_dropfiles函数&#xff…...

Gitlab runner的使用示例(二):Maven + Docker 自动化构建与部署

Gitlab runner的使用示例&#xff08;二&#xff09;&#xff1a;Maven Docker 自动化构建与部署 在本篇文章中&#xff0c;我们将详细解析一个典型的 GitLab CI/CD 配置文件&#xff08;gitlab-ci.yml&#xff09;&#xff0c;该文件主要用于通过 Maven 构建 Java 应用&…...

QNX Hypervisor(十)Linux Guest IPC 二

上文还遗留了一个问题,就是在测试ipc的时候挂死了。相关原理我写在了另外一篇文章。 内存管理 所以导致挂死的问题就是因为没有进行地址映射,mmu无法转换。从kernel代码看,只有ram区域才会进行映射。我们的qvmconf文件也确实没有配置0xb8000000,只配置了pass。 pass loc …...

怎样把PPT上顽固的图标删了

例如&#xff1a; 解决&#xff1a; 首先打开下载好的PPT模板&#xff0c;然后在视图选项卡里面找到幻灯片母版。 进入幻灯片母版后&#xff0c;找到第一页母版页就会看到LOGO了&#xff0c;这时使用鼠标就可以选中删除啦。...

【论文阅读】Slim Fly: A Cost Effective Low-Diameter Network Topology 一种经济高效的小直径网络拓扑

文章目录 Slim Fly: A Cost Effective Low-Diameter Network Topology文章总结1. 摘要2. indroduction3. 主要工作 主要思想references Slim Fly: A Cost Effective Low-Diameter Network Topology Slim Fly&#xff1a;一种经济高效的小直径网络拓扑 SC’14 Maciej Besta 苏…...

Prometheus使用Pushgateway推送数据

Pushgateway简介 Prometheus 的 Pushgateway 是一个简单的 HTTP 服务器&#xff0c;它允许数据被推送到该服务器&#xff0c;而不是通过拉取的方式获取。它的存在是为了让临时和批处理作业能够将其指标暴露给 Prometheus。由于这类作业可能存在的时长不足以被主动抓取&#xf…...

【Oracle】调优与oracle最大连接数配置

博主介绍&#xff1a; 大家好&#xff0c;我是想成为Super的Yuperman&#xff0c;互联网宇宙厂经验&#xff0c;17年医疗健康行业的码拉松奔跑者&#xff0c;曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围&#xff1a; 目前专注java体系&#xff0c;DDD&…...

Unity教程(十六)敌人攻击状态的实现

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...