Lua使用UE内置类型

大纲

  • cppbinding
  • 调用

cppbinding

slua提供基于模板展开的lua接口绑定方法,我们称其为cppbingding,通过使用cppbinding,你可以在尽量不修改目标类文件(无侵入)的情况,将c++类和方法导出给lua使用。使用cppbinding方法导出的lua接口不使用反射机制,相当于你手写lua接口导出,所以在效率和速度上都是最优的,不用担心效率损失,因为你自己手写lua接口导出代码也不会再简洁了。

slua的源码中,找到一下的代码:

通过上图,我们可以了解到,UClassUScriptStructUEnum都是直接使用了unreal内置的反射去进行的!所以大部分unreal的内置类都不需要我们手动进行Regist到lua中才能使用了!

调用

在说使用之前,需要了解到在Unreal的类型反射中,一些类也是不需要使用USF开头就能反射到的,所以在lua中调用的时候,也是不需要加上这些的! eg:UParticleSystem,在lua中使用时是import('ParticleSystem')!

print("Lua Launch is Calling……")

local KismetSystemLibrary = import("KismetSystemLibrary")
print(KismetSystemLibrary)
-- 获取粒子系统
local ParticleSystem = import'ParticleSystem'
print(ParticleSystem)
-- 获取World
local World = import'World'
print(World)