-
Notifications
You must be signed in to change notification settings - Fork 717
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[UE] Bug: 编辑器器下正常,打包后静态函数调用报函数为空 #1882
Comments
遍历为小写不代表有问题。 你通过KismetMathLibrary::Atan访问报错了才代表有问题。 |
打包后ue的FName默认不区分大小写,这个FName 转字符串是什么样取决于它第一次构造时用的是哪个字符串。 v8的成员函数和属性支持自动规避如上特性,但静态函数和变量尚未支持。 可以用proxy来规避这问题,在这里略微修改下: 改为
|
上面的修正代码改为Object.getOwnPropertyDescriptor后,然后Object.defineProperty会比较好些 |
QuickJs 里的成员变量和成员函数 都可以用类似上面的思路来修改吗 |
可以的。 |
如果一个类里有两个同名但是大小写不一致的成员,可能也会出现获取错误的问题。但是目前的方案已经能保底了,可以使用,期待有一个更稳妥的方案。 |
这种自己加个静态绑定声明可以解决。 |
前置阅读 | Pre-reading
Puer的版本 | Puer Version
1.0.5
UE的版本 | UE Version
5.4.4
发生在哪个平台 | Platform
win
错误信息 | Error Message
V8里,部分静态方法名称大小写改变,例如UKismetMathLibrary::Atan,在遍历输出库里所有的方法以后,变成了atan。
问题重现 | Bug reproduce
编写如下方法,然后打PC包
会看到这些log
红色部分是大小写发生改变的地方
Tasks
The text was updated successfully, but these errors were encountered: