前置阅读 | Pre-reading
Puer的版本 | Puer Version
c2fb3d0
UE的版本 | UE Version
源码 UE5.7_Main
发生在哪个平台 | Platform
Editor(win)
错误信息 | Error Message
import * as UE from "ue"
...
const bindingSubsystem = UE.SubsystemBlueprintLibrary.GetGameInstanceSubsystem(
GetWorldContext(),
UE.TsObjectBindingSubsystem.StaticClass(),
) as UE.TsObjectBindingSubsystem
此时启动PIE报错
Puerts: Error: (0x00000286398994B0) TypeError: Cannot read properties of undefined (reading 'GetGameInstanceSubsystem')
TypeError: Cannot read properties of undefined (reading 'GetGameInstanceSubsystem')
at D:\UnrealProject\PuertsPlugin\Content\JavaScript\core\BindingManager.js:44:55
at executeModule (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:70:9)
at require (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:183:29)
at D:\UnrealProject\PuertsPlugin\Content\JavaScript\core\GameEntry.js:5:26
at executeModule (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:70:9)
at require (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:183:29)
at D:\UnrealProject\PuertsPlugin\Content\JavaScript\core\StartUp.js:6:21
at executeModule (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:70:9)
at require (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:183:29)
问题重现 | Bug reproduce
使用nodejs作为后端
我上传了当前的代码到
https://github.com/AllToBeNize/PuertsGameFramework/tree/main/PuertsGameFramework
大致流程就是虚拟机启动时调用Startup,以下是调用链
StartUp
-> GameEntry (import { BindingManager } from "./BindingManager")
-> import * as UE from "ue" 并使用了UE.SubsystemBlueprintLibrary.GetGameInstanceSubsystem,之后报错TypeError: Cannot read properties of undefined (reading 'GetGameInstanceSubsystem')
如果把 import * as UE from "ue" 替换成 import UE = require("ue")就不会有这个问题了
以下是完整代码截图

前置阅读 | Pre-reading
Puer的版本 | Puer Version
c2fb3d0
UE的版本 | UE Version
源码 UE5.7_Main
发生在哪个平台 | Platform
Editor(win)
错误信息 | Error Message
import * as UE from "ue"
...
const bindingSubsystem = UE.SubsystemBlueprintLibrary.GetGameInstanceSubsystem(
GetWorldContext(),
UE.TsObjectBindingSubsystem.StaticClass(),
) as UE.TsObjectBindingSubsystem
此时启动PIE报错
Puerts: Error: (0x00000286398994B0) TypeError: Cannot read properties of undefined (reading 'GetGameInstanceSubsystem')
TypeError: Cannot read properties of undefined (reading 'GetGameInstanceSubsystem')
at D:\UnrealProject\PuertsPlugin\Content\JavaScript\core\BindingManager.js:44:55
at executeModule (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:70:9)
at require (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:183:29)
at D:\UnrealProject\PuertsPlugin\Content\JavaScript\core\GameEntry.js:5:26
at executeModule (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:70:9)
at require (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:183:29)
at D:\UnrealProject\PuertsPlugin\Content\JavaScript\core\StartUp.js:6:21
at executeModule (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:70:9)
at require (D:\UnrealProject\PuertsPlugin\Content\JavaScript\puerts\modular.js:183:29)
问题重现 | Bug reproduce
使用nodejs作为后端
我上传了当前的代码到
https://github.com/AllToBeNize/PuertsGameFramework/tree/main/PuertsGameFramework
大致流程就是虚拟机启动时调用Startup,以下是调用链
StartUp
-> GameEntry (import { BindingManager } from "./BindingManager")
-> import * as UE from "ue" 并使用了UE.SubsystemBlueprintLibrary.GetGameInstanceSubsystem,之后报错TypeError: Cannot read properties of undefined (reading 'GetGameInstanceSubsystem')
如果把 import * as UE from "ue" 替换成 import UE = require("ue")就不会有这个问题了
以下是完整代码截图