scriptkitz

Results 26 comments of scriptkitz

> [761dffa](https://github.com/Tencent/sluaunreal/commit/761dffa18f5328e18ab872e8cc7bf9e5ecea5b9e) 这里有修复,暂时还没合并过来 还是没合并啊?现在还是有问题。

以前版本c++的蓝图函数参数为: TArray 类型的,可以直接传入slua.Array(EPropertyClass.Int)就可以, 但现在新版本,不知道怎么在lua创建这种类型的参数了,slua.Array(EPropertyClass.Byte) 不行slua.Array(EPropertyClass.Enum) 也不行。。。。。。~~~!!!

> local EPropertyClass = import("EPropertyClass") local arr = slua.Array(EPropertyClass.Int) 试试这样呢?新版本UE api有些差异 这样不行,会提示报错,TArray 需要Byte 属性类型。 KismetSystemLibrary.LineTraceSingleForObjects(...) 的一个参数类型是TArray\, 我暂时是注释了: static inline bool isBinStringProperty(FProperty* inner) { if (FByteProperty::StaticClass()->IsChildOf(inner->GetClass())) { //auto byteProperty = CastField(inner);...

> 这样是否可行? local EPropertyClass = import("EPropertyClass") local arr = slua.Array(EPropertyClass.ENum) 不行啊,代码里没有对ENum的参数类型情况的处理。

> 这样是否可行? local EPropertyClass = import("EPropertyClass") local arr = slua.Array(EPropertyClass.ENum) 我使用最新代码的,但还是崩溃: Script Stack (0 frames) : Assertion failed: UnderlyingProp [File:H:\ue54\Engine\Source\Runtime\CoreUObject\Private\UObject\EnumProperty.cpp] [Line: 390] A breakpoint instruction (__debugbreak() statement or a similar...

我用的最新版UE5.4.4 需要再lua里调用UE的射线碰撞函数: local KismetSystemLibrary = import("KismetSystemLibrary") local objs = slua.Array(EPropertyClass.Byte) objs:Add(ConvertToObjectType(ECollisionChannel.ECC_Vehicle)) KismetSystemLibrary.LineTraceSingleForObjects(..., objs, ....); objs 是一个TArray 类型。 所以在lua里貌似是需要slua.Array(EPropertyClass.Byte)这种类型。 我现在是直接把isBinStringProperty内的那个return注释了,现在代码运行正常。 但不知道isBinStringProperty里的那个判断是干啥的会有什么其他什么影响。。。