FPuertsModule::SetJsEnvSelector跑一个PlayAsClient怎么使用2个js环境呢,一个Server一个Client #1267
Answered
by
Tangxinwei
yyj2013-two
asked this question in
Q&A
|
FPuertsModule::SetJsEnvSelector跑一个PlayAsClient怎么使用2个js环境呢,一个Server一个Client。 |
Answered by
Tangxinwei
Mar 23, 2023
Replies: 4 comments 3 replies
|
selector会要求提供一个UObject,而UE的一个游戏实例对应了一个GameInstance,所以你可以通过UObject拿到对应的GameInstance,然后GameInstance在启动的时候记录下自己的js的index。 |
1 reply
Answer selected by
yyj2013-two
|
FPuertsModule::SetJsEnvSelector当年就是为 @Tangxinwei 他们项目搞的特性,怎么使用,会碰到什么问题他最清楚了。 |
0 replies
|
CS模式下,C++其实也是共享内存空间,js只用一个虚拟机其实也没什么不妥。如果js那能把和gameplay有关的所有数据都放对象上,避免使用static的东西(类的static成员,module变量等)用一个虚拟机其实也行。 |
2 replies
|
弱弱的问下,大佬们有代码示例吗?最近在搞ds在编辑器模式也遇到类似问题/(ㄒoㄒ)/~~ |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
selector会要求提供一个UObject,而UE的一个游戏实例对应了一个GameInstance,所以你可以通过UObject拿到对应的GameInstance,然后GameInstance在启动的时候记录下自己的js的index。
还有一种做法就是利用GetWorld,然后直接使用WorldContext上的PIEInstance,不过这个可能只能在editor下使用(没试过runtime)
不过对于CDO类型的,会发现找不到对应的GameInstance,例如AnimNotify之类的,这种一般是要求覆盖GetWorld方法,例如在Notify的时候临时记录下当前的mesh之类的,使得通过cdo也能找到对应的world