-
点击C++类文件夹,在右边的区域点击鼠标右键,在弹出的菜单中选择"新建C++类"

-
在弹出的菜单中选中"显示所有类",选择GameInstanceSubsystem作为父类, 点击"下一步"按钮

-
输入子类名称"UVRVIUOnlineGameSubsystem",选择插件作为新类的目标模块,点击"公共"选择器

-
打开C++工程,找到".Build.cs"文件,在"PublicDependencyModuleNames"下,添加"MultiPlayerPlugin"

|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 |publicclassLandMaster : ModuleRules{``publicLandMaster(ReadOnlyTargetRules Target) : base(Target)``{``PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;``PublicDependencyModuleNames.AddRange(``newstring[] { ``"Core"``, ``"CoreUObject"``, ``"Engine"``, ``"InputCore"``, ``"UMG"``, ``"Http"``, ``"Json"``, ``"JsonUtilities"``, ``"Sockets"``, ``"Networking"``, ``"OnlineSubsystem"``, ``"OnlineSubsystemUtils"``, ``"MultiPlayerPlugin"});``PrivateDependencyModuleNames.AddRange(``newstring[] { ``"Slate"``, ``"SlateCore"});``}}| -
设置"MultiPlayerPlugin.uplugin"文件
|-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |{``"FileVersion"``: 3,``"Version"``: 1,``"VersionName"``: ``"1.0"``,``"FriendlyName"``: ``"MultiPlayerPlugin"``,``"Description"``: ``"plugin for multi player "``,``"Category"``: ``"Other"``,``"CreatedBy"``: ``"VRVIU_Jacky"``,``"CreatedByURL"``: ``""``,``"DocsURL"``: ``""``,``"MarketplaceURL"``: ``""``,``"SupportURL"``: ``""``,``"EngineVersion"``: ``"4.26.0"``,``"CanContainContent"``: ``true``,``"Installed"``: ``true``,``"Modules"``: [``{``"Name"``: ``"MultiPlayerPlugin"``,``"Type"``: ``"Runtime"``,``"LoadingPhase"``: ``"Default"``,``"WhitelistPlatforms"``: [``"Win32"``,``"Win64"``]``}``]}| -
设置插件".Build.cs"文件,添加需要引用的模块
|----------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |// Copyright Epic Games, Inc. All Rights Reserved.usingUnrealBuildTool;publicclassMultiPlayerPlugin : ModuleRules{``publicMultiPlayerPlugin(ReadOnlyTargetRules Target) : base(Target)``{``bEnableUndefinedIdentifierWarnings = ``false``;``PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;``//bUsePrecompiled = true;``PublicIncludePaths.AddRange(``newstring[] {``"MultiPlayerPlugin/Public"``}``);``PrivateIncludePaths.AddRange(``newstring[] {``}``);``PublicDependencyModuleNames.AddRange(``newstring[]``{``"Core"``// ... add other public dependencies that you statically link with here ...``}``);``PrivateDependencyModuleNames.AddRange(``newstring[]``{``"CoreUObject"``,``"Engine"``,``"Slate"``,``"SlateCore"``, ``"UMG"``, ``"Http"``, ``"Json"``, ``"JsonUtilities"``, ``"Sockets"``, ``"Networking"``// ... add private dependencies that you statically link with here ...``}``);``DynamicallyLoadedModuleNames.AddRange(``newstring[]``{``// ... add any modules that your module loads dynamically here ...``}``);``}}| -
获取本机IP地址
|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |FString UVRVIUOnlineGameSubsystem::GetIpAddress(``boolbHasPort ``/*= true*/``){``FString IpAddr(``"NONE"``);``boolcanBind = ``false``;``TSharedRef<FInternetAddr>LocalIp = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->GetLocalHostAddr(*GLog, canBind);``if(LocalIp->IsValid())``{``IpAddr = LocalIp->ToString(bHasPort);``}``returnIpAddr;}| -
创建会话
|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 |FString cmd = ``"open "+ Map + ``"?listen"``;UGameplayStatics::GetPlayerController(GetWorld(), 0)->ConsoleCommand(cmd);m_ServerAddress = ServerAddress.Len() == 0 ? GetIpAddress(``false``):ServerAddress;| -
加入会话
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 |UE_LOG(LogTemp, Warning, TEXT(``"UVRVIUOnlineGameSubsystem::ConnectServer %s"``), *IntranetIP);FString cmd = ``"open "+ IntranetIP;UGameplayStatics::GetPlayerController(GetWorld(), 0)->ConsoleCommand(cmd);m_ServerAddress = IntranetIP;|
Unreal Engine添加UGameInstanceSubsystem子类
ChatGPT攻城狮2024-04-30 8:20
相关推荐
豆沙沙包?2 小时前
C++~~~set容器、map容器(p57-P69)qeen873 小时前
【数据结构】哈希表的C++实现与封装乐观勇敢坚强的老彭4 小时前
C++信奥GESP四级的常见题型和解题模板速查表欧特克_Glodon5 小时前
OpenCV计算机视觉开发入门与实践<二十二>:图像平滑之线性滤波沙盘客5 小时前
AFSIM 示例解读(09)· 传感器全家桶 sensor_demos(下):ESM / SAR / 被动测向大鹏的NLP博客5 小时前
WSL2 资源治理:从 ONNX Runtime CUDA 编译 OOM 到 `.wslconfig` 防御配置星星.7226 小时前
C++算法竞赛|二分查找与二分答案:边界模板、浮点二分、STL老当益壮梁奶奶6 小时前
Linux 软件编程学习笔记(六):线程编程入门与实践小小龙学IT6 小时前
Dear ImGui 开源即时模式 GUI 库深度解析ShineWinsu7 小时前
对于TRAE中配置Qt的解析