-
点击C++类文件夹,在右边的区域点击鼠标右键,在弹出的菜单中选择"新建C++类"
-
在弹出的菜单中选中"显示所有类",选择GameInstanceSubsystem作为父类, 点击"下一步"按钮
-
输入子类名称"UVRVIUOnlineGameSubsystem",选择插件作为新类的目标模块,点击"公共"选择器
-
打开C++工程,找到".Build.cs"文件,在"PublicDependencyModuleNames"下,添加"MultiPlayerPlugin"
|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 |public
class
LandMaster : ModuleRules
{
``public
LandMaster(ReadOnlyTargetRules Target) : base(Target)
``{
``PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
``PublicDependencyModuleNames.AddRange(``new
string[] { ``"Core"``, ``"CoreUObject"``, ``"Engine"``, ``"InputCore"``, ``"UMG"``, ``"Http"``, ``"Json"``, ``"JsonUtilities"``, ``"Sockets"``, ``"Networking"``, ``"OnlineSubsystem"``, ``"OnlineSubsystemUtils"``, ``"MultiPlayerPlugin"
});
``PrivateDependencyModuleNames.AddRange(``new
string[] { ``"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.
using
UnrealBuildTool;
public
class
MultiPlayerPlugin : ModuleRules
{
``public
MultiPlayerPlugin(ReadOnlyTargetRules Target) : base(Target)
``{
``bEnableUndefinedIdentifierWarnings = ``false``;
``PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
``//bUsePrecompiled = true;
``PublicIncludePaths.AddRange(
``new
string[] {
``"MultiPlayerPlugin/Public"
``}
``);
``PrivateIncludePaths.AddRange(
``new
string[] {
``}
``);
``PublicDependencyModuleNames.AddRange(
``new
string[]
``{
``"Core"
``// ... add other public dependencies that you statically link with here ...
``}
``);
``PrivateDependencyModuleNames.AddRange(
``new
string[]
``{
``"CoreUObject"``,
``"Engine"``,
``"Slate"``,
``"SlateCore"``, ``"UMG"``, ``"Http"``, ``"Json"``, ``"JsonUtilities"``, ``"Sockets"``, ``"Networking"
``// ... add private dependencies that you statically link with here ...
``}
``);
``DynamicallyLoadedModuleNames.AddRange(
``new
string[]
``{
``// ... 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(``bool
bHasPort ``/*= true*/``)
{
``FString IpAddr(``"NONE"``);
``bool
canBind = ``false``;
``TSharedRef<FInternetAddr>LocalIp = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->GetLocalHostAddr(*GLog, canBind);
``if
(LocalIp->IsValid())
``{
``IpAddr = LocalIp->ToString(bHasPort);
``}
``return
IpAddr;
}
| -
创建会话
|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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
相关推荐
Paddi9301 小时前
Codeforces Round 1004 (Div. 1) C. Bitwise Slides流星白龙5 小时前
【C++】36.C++IO流靡不有初1116 小时前
CCF-CSP第31次认证第二题——坐标变换(其二)【NA!前缀和思想的细节,输出为0的常见原因】YH_DevJourney9 小时前
Linux-C/C++《C/7、字符串处理》(字符串输入/输出、C 库中提供的字符串处理函数、正则表达式等)和光同尘@9 小时前
1011. A+B和C (15)-PAT乙级真题虾球xz9 小时前
游戏引擎学习第108天xianwu54310 小时前
反向代理模块kd虾球xz10 小时前
游戏引擎学习第112天鄃鳕10 小时前
C++11 threadwen__xvn11 小时前
每日一题洛谷P5738 【深基7.例4】歌唱比赛c++