Tencent / sluaunreal

lua dev plugin for unreal engine 4 or 5
Other
1.78k stars 422 forks source link

请问怎么导入C++里的类等类型? #253

Closed FTQZS closed 4 years ago

FTQZS commented 4 years ago

比如在lua里调一个枚举,例子里直接UEnums.EXXXX就拿到了,UEnums是什么时候加载的?如何加载?

pangweiwei commented 4 years ago

新版已经没有这个东西了

FTQZS commented 4 years ago

新版没有了?要手动自己导需要的类型吗?利用CppBinding吗?没怎么看懂怎么导,有相关教程吗?

pangweiwei commented 4 years ago

import “someEnum"

pangweiwei commented 4 years ago

新版的例子也对应修改了: 例如 EPropertyClass = import"EPropertyClass"

FTQZS commented 4 years ago

谢谢,能导入枚举了,还试了导入部分C++类,有的成功,有的不行,像经常用的全局指针GEngine该怎么拿呢?想用GEngine->AddOnScreenDebugMessage方法打印Log什么的

pangweiwei commented 4 years ago

你可以做一个函数返回GEngine,比如GetGEngine

pangweiwei commented 4 years ago

如果你想使用AddOnScreenDebugMessage函数,这个函数没有UFunction标记,所以你需要使用extension机制扩展它,参考这里: https://github.com/Tencent/sluaunreal/wiki/CppBinding-%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E#%E6%89%A9%E5%B1%95blueprint%E7%9A%84cppbinding

pangweiwei commented 4 years ago

你还可以参考LuaExtensionMethod.cpp这个文件,slua本身也extend了一些常用了非UFunction方法供lua使用。