-
点击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
相关推荐
小李也疯狂13 分钟前
Unity 中的立方体贴图(Cubemaps)呆呆敲代码的小Y15 分钟前
【Unity工具篇】| 超实用工具LuBan,快速上手使用EQ-雪梨蛋花汤17 分钟前
【Unity优化】Unity多场景加载优化与资源释放完整指南:解决Additive加载卡顿、预热、卸载与内存释放问题rainbow688928 分钟前
EffectiveC++入门:四大习惯提升代码质量秋邱44 分钟前
用 Python 写出 C++ 的性能?用CANN中PyPTO 算子开发硬核上手指南我的offer在哪里1 小时前
用 Unity 从 0 做一个「可以玩的」游戏,需要哪些步骤和流程我在人间贩卖青春1 小时前
C++之析构函数我在人间贩卖青春1 小时前
C++之数据类型的扩展泡泡茶壶ᐇ1 小时前
Unity游戏开发入门指南:从零开始理解游戏引擎核心概念wangjialelele2 小时前
平衡二叉搜索树:AVL树和红黑树