Lua API
以下是 UE4SS 提供的 Lua API 函数,此外仍可使用 Lua 默认自带的标准库。
适用版本:4.0.0
当前状态:大部分已完成
完整 API 总览
此处汇总 UE4SS 可用的 API 定义。若要阅读更清晰的信息,请查看原文可折叠章节 4.1、4.2 和 4.3 中的独立 API 定义页(本 Wiki 中对应“表定义”“类”“全局函数”目录)。
警告:本 API 列表自 2.5.2 以来未更新,内容已经过时。最新信息请以各独立 API 定义页为准。
表定义
- 定义格式为:FieldName | FieldValueType(字段名 | 字段值类型)。
- 为便于阅读,仅使用数字作为名称的字段在此以
#表示。 - 除非另有说明,所有字段均为必填。
ModifierKeys
# | string(Microsoft 虚拟键码)
PropertyTypes
ObjectProperty | internal_value
ObjectPtrProperty | internal_value
Int8Property | internal_value
Int16Property | internal_value
IntProperty | internal_value
Int64Property | internal_value
NameProperty | internal_value
FloatProperty | internal_value
StrProperty | internal_value
ByteProperty | internal_value
UInt16Property | internal_value
UIntProperty | internal_value
UInt64Property | internal_value
BoolProperty | internal_value
ArrayProperty | internal_value
MapProperty | internal_value
StructProperty | internal_value
ClassProperty | internal_value
WeakObjectProperty | internal_value
EnumProperty | internal_value
TextProperty | internal_value
OffsetInternalInfo
Property | string(作为相对起点、替代基址的属性名称)
RelativeOffset | integer(从相对起点到此属性的偏移量)
ArrayPropertyInfo
Type | table (PropertyTypes)
CustomPropertyInfo
Name | string(供 __index 元方法使用的名称)
Type | table (PropertyTypes)
BelongsToClass | string(此属性所属类的完整类名,不含类型前缀)
OffsetInternal | integer or table(为 table 时使用 OffsetInternalInfo,否则为从基址到此属性的偏移)
ArrayProperty | table(可选,ArrayPropertyInfo)
EObjectFlags
- 对象标记表,可使用 | 进行按位或组合。
RF_NoFlags | 0x00000000
RF_Public | 0x00000001
RF_Standalone | 0x00000002
RF_MarkAsNative | 0x00000004
RF_Transactional | 0x00000008
RF_ClassDefaultObject | 0x00000010
RF_ArchetypeObject | 0x00000020
RF_Transient | 0x00000040
RF_MarkAsRootSet | 0x00000080
RF_TagGarbageTemp | 0x00000100
RF_NeedInitialization | 0x00000200
RF_NeedLoad | 0x00000400
RF_KeepForCooker | 0x00000800
RF_NeedPostLoad | 0x00001000
RF_NeedPostLoadSubobjects | 0x00002000
RF_NewerVersionExists | 0x00004000
RF_BeginDestroyed | 0x00008000
RF_FinishDestroyed | 0x00010000
RF_BeingRegenerated | 0x00020000
RF_DefaultSubObject | 0x00040000
RF_WasLoaded | 0x00080000
RF_TextExportTransient | 0x00100000
RF_LoadCompleted | 0x00200000
RF_InheritableComponentTemplate | 0x00400000
RF_DuplicateTransient | 0x00800000
RF_StrongRefOnFrame | 0x01000000
RF_NonPIEDuplicateTransient | 0x01000000
RF_Dynamic | 0x02000000
RF_WillBeLoaded | 0x04000000
RF_HasExternalPackage | 0x08000000
RF_AllFlags | 0x0FFFFFFF
EInternalObjectFlags
- 内部对象标记表,可使用 | 进行按位或组合。
ReachableInCluster | 0x00800000
ClusterRoot | 0x01000000
Native | 0x02000000
Async | 0x04000000
AsyncLoading | 0x08000000
Unreachable | 0x10000000
PendingKill | 0x20000000
RootSet | 0x40000000
GarbageCollectionKeepFlags | 0x0E000000
AllFlags | 0x7F800000
全局函数
print(any... Message)
- 不支持格式化。需要格式化时使用 'string.format'。
CreateInvalidObject() -> UObject
- 创建一个对象,其 IsValid 函数始终返回 false。
StaticFindObject(string ObjectName) -> { UObject | AActor | nil }
StaticFindObject(UClass Class=nil, UObject InOuter=nil, string ObjectName, bool ExactClass=false)
- 对应 https://docs.unrealengine.com/4.26/en-US/API/Runtime/CoreUObject/UObject/StaticFindObject/
FindFirstOf(string ShortClassName) -> { UObject | AActor | nil }
- 查找指定类名的第一个非默认实例。
- 参数 'ShortClassName':只包含类名本身,不含路径信息。
FindAllOf(string ShortClassName) -> table -> { UObject | AActor } | nil
- 查找指定类名的所有非默认实例。
- 参数 'ShortClassName':只包含类名本身,不含路径信息。
RegisterKeyBind(integer Key, function Callback)
RegisterKeyBind(integer Key, table ModifierKeys, function callback)
- 为按键绑定注册回调。
- 仅当游戏或调试控制台拥有焦点时才能触发回调。
IsKeyBindRegistered(integer Key)
IsKeyBindRegistered(integer Key, table ModifierKeys)
- 检查调用时指定按键是否已经注册。
RegisterHook(string UFunctionName, function Callback) -> integer, integer
- 为 UFunction 注册回调。
- UFunction 执行时触发回调。
- 回调参数为:UObject self, UFunctionParams...
- 返回两个 ID。注销钩子时,必须将两者都传给 'UnregisterHook'。
UnregisterHook(string UFunctionName, integer PreId, integer PostId)
- 注销钩子。
ExecuteInGameThread(function Callback)
- 通过 ProcessEvent 在游戏线程中执行代码。
- 游戏有时间执行时就会尽快执行。
FName(string Name) -> FName
FName(integer ComparisonIndex) -> FName
- 返回字符串/ComparisonIndex 对应的 FName;名称不存在时返回 "None" 的 FName。
FText(string Text) -> FText
- 返回字符串的 FText 表示。
StaticConstructObject(UClass Class,
UObject Outer,
FName Name, #可选
EObjectFlags Flags, #可选
EInternalObjectFlags InternalSetFlags, #可选
bool CopyTransientsFromClassDefaults, #可选
bool AssumeTemplateIsArchetype, #可选
UObject Template, #可选
FObjectInstancingGraph InstanceGraph, #可选
UPackage ExternalPackage, #可选
void SubobjectOverrides #可选) -> UObject
- 尝试构造传入 UClass 类型的 UObject。
- (>=4.26) 对应 https://docs.unrealengine.com/4.27/en-US/API/Runtime/CoreUObject/UObject/StaticConstructObject_Internal/1/
- (<4.25) 对应 https://docs.unrealengine.com/4.27/en-US/API/Runtime/CoreUObject/UObject/StaticConstructObject_Internal/2/
RegisterCustomProperty(table CustomPropertyInfo)
- 注册自定义属性,供 'UObject.__index' 自动使用。
ForEachUObject(function Callback)
- 对 GUObjectArray 中的每个 UObject 执行回调。
- 回调参数为:UObject object, integer ChunkIndex, integer ObjectIndex。
NotifyOnNewObject(string UClassName, function Callback)
- 每次构造指定类的实例时,执行所提供的 Lua 函数。
- 会考虑继承关系;例如将类设为 "/Script/Engine.Actor" 时,
- 构造 AActor 或任何派生自 AActor 的对象,都会执行该 Lua 函数。
RegisterCustomEvent(string EventName, function Callback)
- 注册回调,在名为 'EventName' 的蓝图函数/事件被调用时执行。
RegisterLoadMapPreHook(function Callback)
- 注册在 UEngine::LoadMap 调用前执行的回调。
- 回调参数为:UEngine Engine, struct FWorldContext& WorldContext, FURL URL, class UPendingNetGame* PendingGame, FString& Error。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
RegisterLoadMapPostHook(function Callback)
- 注册在 UEngine::LoadMap 调用后执行的回调。
- 回调参数为:UEngine Enigne, struct FWorldContext& WorldContext, FURL URL, class UPendingNetGame* PendingGame, FString& Error。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
RegisterInitGameStatePreHook(function Callback)
- 注册在 AGameModeBase::InitGameState 调用前执行的回调。
- 回调参数为:AGameModeBase Context。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
RegisterInitGameStatePostHook(function Callback)
- 注册在 AGameModeBase::InitGameState 调用后执行的回调。
- 回调参数为:AGameModeBase Context。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
RegisterBeginPlayPreHook(function Callback)
- 注册在 AActor::BeginPlay 调用前执行的回调。
- 回调参数为:AActor Context。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
RegisterBeginPlayPostHook(function Callback)
- 注册在 AActor::BeginPlay 调用后执行的回调。
- 回调参数为:AActor Context。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
RegisterProcessConsoleExecPreHook(function Callback)
- 注册在 UObject::ProcessConsoleExec 调用前执行的回调。
- 回调参数为:UObject Context, string Cmd, table CommandParts, FOutputDevice Ar, UObject Executor。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
- 回调无返回值或返回 nil 时,使用 ProcessConsoleExec 的原始返回值。
- 回调返回 true 或 false 时,以该值覆盖 ProcessConsoleExec 的原始返回值。
RegisterProcessConsoleExecPostHook(function Callback)
- 注册在 UObject::ProcessConsoleExec 调用后执行的回调。
- 回调参数为:UObject Context, string Cmd, table CommandParts, FOutputDevice Ar, UObject Executor。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
- 回调无返回值或返回 nil 时,使用 ProcessConsoleExec 的原始返回值。
- 回调返回 true 或 false 时,以该值覆盖 ProcessConsoleExec 的原始返回值。
RegisterCallFunctionByNameWithArgumentsPreHook(function Callback)
- 注册在 UObject::CallFunctionByNameWithArguments 调用前执行的回调。
- 回调参数为:UObject Context, string Str, FOutputDevice Ar, UObject Executor, bool bForceCallWithNonExec。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
- 回调无返回值或返回 nil 时,使用 CallFunctionByNameWithArguments 的原始返回值。
- 回调返回 true 或 false 时,以该值覆盖 CallFunctionByNameWithArguments 的原始返回值。
RegisterCallFunctionByNameWithArgumentsPostHook(function Callback)
- 注册在 UObject::CallFunctionByNameWithArguments 调用后执行的回调。
- 回调参数为:UObject Context, string Str, FOutputDevice Ar, UObject Executor, bool bForceCallWithNonExec。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
- 回调无返回值或返回 nil 时,使用 CallFunctionByNameWithArguments 的原始返回值。
- 回调返回 true 或 false 时,以该值覆盖 CallFunctionByNameWithArguments 的原始返回值。
RegisterULocalPlayerExecPreHook(function Callback)
- 注册在 ULocalPlayer::Exec 调用前执行的回调。
- 回调参数为:ULocalPlayer Context, UWorld InWorld, string Cmd, FOutputDevice Ar。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
- 回调可以有两个返回值。
- 第一个返回值为空或 nil 时,使用 Exec 的原始返回值。
- 第一个返回值为 true 或 false 时,以该值覆盖 Exec 的原始返回值。
- 第二个返回值控制是否执行原始 Exec。
- 第二个返回值为 nil 或 true 时,执行原始 Exec。
- 第二个返回值为 false 时,不执行原始 Exec。
RegisterULocalPlayerExecPostHook(function Callback)
- 注册在 ULocalPlayer::Exec 调用后执行的回调。
- 回调参数为:ULocalPlayer Context, UWorld InWorld, string Cmd, FOutputDevice Ar。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
- 回调可以有两个返回值。
- 第一个返回值为空或 nil 时,使用 Exec 的原始返回值。
- 第一个返回值为 true 或 false 时,以该值覆盖 Exec 的原始返回值。
- 第二个返回值控制是否执行原始 Exec。
- 第二个返回值为 nil 或 true 时,执行原始 Exec。
- 第二个返回值为 false 时,不执行原始 Exec。
RegisterConsoleCommandHandler(string CommandName, function Callback)
- 为自定义控制台命令注册回调。
- 此回调仅在 UGameViewportClient 上下文中运行。
- 回调参数为:string Cmd, table CommandParts, FOutputDevice Ar。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
- 回调必须返回 true 或 false。
- 回调返回 true 后,不会再为此命令调用其他处理器。
RegisterConsoleCommandGlobalHandler(string CommandName, function Callback)
- 为自定义控制台命令注册回调。
- 与 'RegisterConsoleCommandHandler' 不同,此全局版本会在所有上下文中运行回调。
- 回调参数为:string Cmd, table CommandParts, FOutputDevice Ar。
- 除 string、bool 和 FOutputDevice 外,参数必须通过 'Param:Get()' 读取、通过 'Param:Set()' 设置。
- 回调必须返回 true 或 false。
- 回调返回 true 后,不会再为此命令调用其他处理器。
ExecuteAsync(function Callback)
- 异步执行指定函数。
ExecuteWithDelay(integer DelayInMilliseconds, function Callback)
- 经过指定延迟后异步执行指定函数。
RegisterConsoleCommandHandler(string CommandName, function Callback)
- 每次在 UE 控制台输入 CommandName 时,执行所提供的 Lua 函数。
- 回调参数包括完整命令(string)、
- 参数(table,由完整命令按空格拆分而成),以及 FOutputDevice。
- 回调返回 true 可阻止其他处理器处理该命令,返回 false 则允许其他处理器继续处理。
LoadAsset(string AssetPathAndName)
- 按名称加载资产。
- 只能从游戏线程中调用。
- 例如在 UFunction 钩子或 RegisterConsoleCommandHandler 回调内调用。
FindObject(string|FName|nil ClassName, string|FName|nil ObjectShortName, EObjectFlags RequiredFlags, EObjectFlags BannedFlags) -> UObject derivative
- 按类名或对象短名称查找对象。
- ClassName 或 ObjectShortName 可以为 nil,但不能同时为 nil。
- 返回 UObject 或其派生类型的对象。
FindObject(UClass InClass, UObject InOuter, string Name, bool ExactClass)
- 查找对象,行为与 UE 源码中的同名函数相同。
FindObjects(integer NumObjectsToFind, string|FName|nil ClassName, string|FName|nil ObjectShortName, EObjectFlags RequiredFlags, EObjectFlags BannedFlags, bool bExactClass) -> table -> { UObject derivative }
- 按类名或对象短名称查找最先匹配的指定数量对象。
- 若要查找全部匹配对象,将 NumObjectsToFind 设为 0 或 nil。
- 返回由 UObject 派生对象组成的 table。
LoopAsync(integer DelayInMilliseconds, function Callback)
- 启动循环,每次休眠指定毫秒数,回调返回 true 时停止。
IterateGameDirectories() -> table
- 返回包含所有游戏目录的 table。
- Win64 绝对路径示例:Q:\SteamLibrary\steamapps\common\Deep Rock Galactic\FSD\Binaries\Win64
- 访问同一目录可使用:IterateGameDirectories().Game.Binaries.Win64
- 为保持通用性,游戏名称会替换为 'Game'。
- 使用 '.__name' 和 '.__absolute_path' 取得名称和绝对路径。
- 使用 '.__files' 取得包含此目录全部文件的 table。
- 对文件也可以使用 '.__name' 和 '.__absolute_path'。
DumpAllObjects()
GenerateSDK()
GenerateLuaTypes()
GenerateUHTCompatibleHeaders()
DumpStaticMeshes()
DumpAllActors()
DumpUSMAP()
DumpJMAP()
RestartCurrentMod()
- 重启当前运行的 Mod。
- 将该 Mod 排入队列,在下一次更新周期重启。
UninstallCurrentMod()
- 卸载当前运行的 Mod。
- 将该 Mod 排入队列,在下一次更新周期卸载。
RestartMod(string ModName)
- 按名称重启另一个 Mod。
- 将指定 Mod 排入队列,在下一次更新周期重启。
UninstallMod(string ModName)
- 按名称卸载另一个 Mod。
- 将指定 Mod 排入队列,在下一次更新周期卸载。
类
RemoteObject
继承:
- 所有其他对象继承的两个基础对象之一。
- 包含指向 C/C++ 对象的指针,该对象通常由游戏拥有。
方法
IsValid() -> bool
- 返回该对象是否有效。
LocalObject
继承:
- 所有其他对象继承的两个基础对象之二。
- 包含完全由 Lua 拥有的内联对象。
方法
UnrealVersion
继承:
方法
GetMajor() -> integer
GetMinor() -> integer
IsEqual(number MajorVersion, number MinorVersion) -> bool
IsAtLeast(number MajorVersion, number MinorVersion) -> bool
IsAtMost(number MajorVersion, number MinorVersion) -> bool
IsBelow(number MajorVersion, number MinorVersion) -> bool
IsAbove(number MajorVersion, number MinorVersion) -> bool
UE4SS
继承:
- 用于与 UE4SS 元数据交互的类。
方法
GetVersion() -> 3x integer
- 返回主版本号、次版本号和热修复版本号。
- 若要检测 1.0 或更早版本,检查 "UE4SS" 或 "UE4SS.GetVersion" 是否为 nil。
Mod
继承:RemoteObject
- 用于与本地 Mod 对象交互的类。
方法
SetSharedVariable(string VariableName, any Value)
- 设置任何 Mod 都能访问的变量。
- 第二个参数 Value 只能是以下类型之一:nil、string、number、bool、UObject(及其派生类型)、lightuserdata。
- 热重载不会重置这些变量。
GetSharedVariable(string VariableName) -> any
- 获取可能由其他 Mod 设置的变量。
- 返回值只能是以下类型之一:nil、string、number、bool、UObject(及其派生类型)、lightuserdata。
type() -> string
- 返回 "ModRef"。
UObject
继承:RemoteObject
- 大多数其他 Unreal Engine 游戏对象都继承自此基类。
方法
__index(string MemberVariableName) -> auto
- 尝试返回成员变量或可调用的 UFunction。
- 可能返回任意类型;对于非简单类型,可对返回值调用 'type()' 来确定使用的 Lua 类。
__newindex(string MemberVariableName, auto NewValue)
- 尝试设置成员变量的值。
GetFullName() -> string
- 返回 UObject 及其派生对象的完整名称和路径信息。
GetFName() -> FName
- 按副本返回此对象的 FName。
- 通过 '__index' 返回的所有 FName 均为引用。
GetAddress() -> integer
- 返回此对象的内存地址。
GetClass() -> UClass
- 返回此对象的类,等价于 Unreal 中的 'UObject->ClassPrivate'。
GetOuter() -> UObject
- 返回此对象的 Outer。
IsAnyClass() -> bool
- 此 UObject 是 UClass 或其派生类型时返回 true。
Reflection() -> UObjectReflection
- 返回反射对象。
GetPropertyValue(string MemberVariableName) -> auto
- 与 __index 相同。
SetPropertyValue(string MemberVariableName auto NewValue)
- 与 __newindex 相同。
IsClass() -> bool
- 返回此对象是否为 UClass 或其派生类型。
GetWorld() -> UWorld
- 返回包含此 UObject 的 UWorld。
CallFunction(UFunction function, auto Params...)
- 在此 UObject 上调用指定 UFunction。
IsA(UClass Class) -> bool
IsA(string FullClassName) -> bool
- 返回此对象是否属于指定类。
HasAllFlags(EObjectFlags FlagsToCheck)
- 返回此对象是否具有全部指定标记。
HasAnyFlags(EObjectFlags FlagsToCheck)
- 返回此对象是否具有任意指定标记。
HasAnyInternalFlags(EInternalObjectFlags InternalFlagsToCheck)
- 返回此对象是否具有任意指定内部标记。
ProcessConsoleExec(string Cmd, nil Reserved, UObject Executor)
- 使用给定参数调用 UObject::ProcessConsoleExec。
type() -> string
- 返回 UE4SS 识别的此对象类型。
- 这不是 Unreal 识别的类型。
UStruct
继承:UObject
方法
GetSuperStruct() -> UClass
- 返回此结构体的 SuperStruct(可能无效)。
ForEachFunction(function Callback)
- 遍历属于此结构体的每个 UFunction。
- 回调有一个参数:UFunction Function。
- 在回调中返回 true 可停止遍历。
ForEachProperty(function Callback)
- 遍历属于此结构体的每个 Property。
- 回调有一个参数:Property Property。
- 在回调中返回 true 可停止遍历。
UClass
继承:UClass
方法
GetCDO() -> UClass
- 返回 UClass 的 ClassDefaultObject。
IsChildOf(UClass Class) -> bool
- 返回此类是否为另一个类的子类。
AActor
继承:UObject
方法
GetWorld() -> UObject | nil
- 返回此 Actor 所属的 UWorld。
GetLevel() -> UObject | nil
- 返回此 Actor 所属的 ULevel。
FName
继承:LocalObject
方法
ToString() -> string
- 返回此 FName 对应的字符串。
GetComparisonIndex() -> integer
- 返回此 FName 的 ComparisonIndex(全局名称数组中的索引)。
TArray
继承:RemoteObject
方法
__index(integer ArrayIndex)
- 尝试取得数组中指定偏移位置的值。
- 可能返回任意类型;对于非简单类型,可对返回值调用 'type()' 来确定使用的 Lua 类。
__newindex(integer ArrayIndex, auto NewValue)
- 尝试设置数组中指定偏移位置的值。
GetArrayAddress() -> integer
- 返回 TArray 结构体所在的内存地址。
GetArrayNum() -> integer
- 返回数组当前的元素数量。
GetArrayMax() -> integer
- 返回数组允许的最大元素数量,即容量。
GetArrayDataAddress -> integer
- 返回数组数据所在的内存地址。
ForEach(function Callback)
- 遍历整个 TArray,对每个元素调用回调。
- 回调参数为:integer index, RemoteUnrealParam | LocalUnrealParam elem。
- 使用 'elem:get()' 和 'elem:set()' 访问或修改数组元素。
UEnum
继承:RemoteObject
方法
GetNameByValue(integer Value) -> FName
- 返回指定值对应的 FName。
ForEachName(LuaFunction Callback) -> FName
- 遍历属于此枚举的每个 FName/Value 组合。
- 回调有两个参数:FName Name, integer Value。
- 在回调中返回 true 可停止遍历。
RemoteUnrealParam | LocalUnrealParam
继承:RemoteObject | LocalObject
- 这是任意类型和类的动态包装器。
- 使用 Remote 还是 Local 版本取决于数据要求,但两种参数类型的用法相同。
方法
get() -> auto
- 返回此参数的底层值。
set(auto NewValue)
- 设置此参数的底层值。
type() -> string
- 返回 "RemoteUnrealParam" 或 "LocalUnrealParam"。
UScriptStruct
继承:LocalObject
方法
__index(string StructMemberVarName) -> auto
- 尝试返回指定变量的值。
- 可能返回任意类型;对于非简单类型,可对返回值调用 'type()' 来确定使用的 Lua 类。
__newindex(string StructMemberVarName, auto NewValue)
- 尝试设置指定变量的值。
GetBaseAddress() -> integer
- 返回此 UScriptStruct 所属 UObject 的内存地址。
GetStructAddress() -> integer
- 返回此 UScriptStruct 的内存地址。
GetPropertyAddress() -> integer
- 返回对应 U/FProperty 的内存地址。
IsValid() -> bool
- 返回结构体是否有效。
IsMappedToObject() -> bool
- 返回基础对象是否有效。
IsMappedToProperty() -> bool
- 返回属性是否有效。
type() -> string
- 返回 "UScriptStruct"。
UFunction
继承:UObject
方法
__call(UFunctionParams...)
- 尝试调用此 UFunction。
GetFunctionFlags() -> integer
- 返回 UFunction 的标记。
SetFunctionFlags(integer Flags)
设置 UFunction 的标记。
FString
继承:RemoteObject
- 字符组成的 TArray。
方法
ToString()
- 返回 Lua 能理解的字符串。
Clear()
- 将 TArray 的元素数量设为 0,以清空字符串。
FieldClass
继承:LocalObject
方法
GetFName()
- 按副本返回此类的 FName。
Property
继承:RemoteObject
方法
GetFullName() -> string
- 返回此属性的完整名称和路径。
GetFName() -> FName
- 按副本返回此属性的 FName。
- 通过 '__index' 返回的所有 FName 均为引用。
IsA(PropertyTypes PropertyType) -> bool
- 属性类型为 PropertyType 时返回 true。
GetClass() -> PropertyClass
ContainerPtrToValuePtr(UObjectDerivative Container, integer ArrayIndex) -> LightUserdata
- 等价于 UE 中的 FProperty::ContainerPtrToValuePtr<uint8>。
ImportText(string Buffer, LightUserdata Data, integer PortFlags, UObject OwnerObject)
- 等价于 UE 中的 FProperty::ImportText,但没有 'ErrorText' 参数。
ObjectProperty
继承:Property
方法
GetPropertyClass() -> UClass
- 返回此属性持有的类。
BoolProperty
继承:Property
方法
GetByteMask() -> integer
GetByteOffset() -> integer
GetFieldMask() -> integer
GetFieldSize() -> integer
StructProperty
继承:Property
方法
GetStruct() -> UScriptStruct
- 返回映射到此属性的 UScriptStruct。
ArrayProperty
继承:Property
方法
GetInner() -> Property
- 返回数组内部的元素属性。
UObjectReflection
继承:
方法
GetProperty(string PropertyName) -> Property
- 返回属性元数据对象。
FOutputDevice
继承:RemoteObject
方法
Log(string Message)
- 向输出设备(例如游戏内控制台)记录消息。
FWeakObjectPtr
继承:LocalObject
方法
Get() -> UObjectDerivative
- 返回指向的 UObject 或其派生对象(可能无效,因此调用 Get 后应调用 UObject:IsValid)。
原文:docs/lua-api.md · 固定提交 560411f18512 · 来源与 MIT 许可