[英]Websockets on Unreal Engine 4?
我开始使用虚幻引擎 4 。 我来自 Libgdx,我熟悉在我的游戏中使用 WebSockets 客户端,并在服务器上使用带有“ws”的 NodeJS。
但是,我找不到有关Websockets和 Unreal Engine 4 的信息。
我知道鉴于它是用 C++ 编程的,您可以将外部 static 库添加到虚幻项目中。
我可以使用这个 c++ websocket 库吗?
https://github.com/zaphoyd/websocketpp
它会在 Windows、Mac 和控制台上运行吗?
我不是 c++ 和 static 库的专家。 请帮助,谢谢!
您可以在TCP套接字上遵循本教程 。
您将需要对代码进行一些更改,因为它无法在UE 4.10上运行(本教程最初来自2014年)。
在.h文件中,定义2个计时器句柄:
FTimerHandle TimerHandle_Connection;
FTimerHandle TimerHandle_Socket;
在.cpp文件中,在StartTCPReceiver(...)内部,将计时器设置为以下行:
GetWorldTimerManager().SetTimer(TimerHandle_Connection, this, &AYourClass::TCPConnectionListener, 0.01, true);
并在TCPConnectionListener(...)上将计时器设置为以下行:
GetWorldTimerManager().ClearTimer(TimerHandle_Connection);//optional, only if you want to stop listening for new connections
GetWorldTimerManager().SetTimer(TimerHandle_Socket, this, &AYourClass::TCPSocketListener, 0.01, true);
(另一种选择是线程化这些功能,而不是将它们放在计时器中)
以防万一,如果您不熟悉UE,请不要直接在IDE上添加代码。 转到内容浏览器>添加新>新建C ++类。 您可以创建一个继承自Actor的新类,并且当您想开始侦听连接时,可以生成该Actor。
您可以将任何 websocket 或第三方资产与虚幻引擎一起使用。 例如,您可以简单地使用PrivateIncludePathModuleNames
在 Build.cs 文件中添加标头(还有一个公共包含路径),它采用一个字符串数组,其中每个字符串本质上是一个文件夹。 如果你想添加一个库 (lib) 文件,你可以像这样添加它:
if (Target.Platform == UnrealTargetPlatform.Win32 ||
Target.Platform == UnrealTargetPlatform.Win64)
{
PublicSystemLibraries.Add("crypt32.lib");
}
您还可以在此处添加完整路径。 如果你想延迟加载,你可以只使用PublicDelayLoadedDlls.Add("name")
<- 我可能在这个语法上有错误,但很容易用谷歌搜索。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.