-
点击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
相关推荐
寒笙LED1 小时前
C++详细笔记(六)string库就爱六点起3 小时前
C/C++ 中的类型转换方式召木4 小时前
C++小白实习日记——Day 2 TSCNS怎么读取当前时间鹿野素材屋4 小时前
Unity Dots下的动画合批工具:GPU ECS Animation BakerSt_Ludwig4 小时前
C语言 蓝桥杯某例题解决方案(查找完数)Jack黄从零学c++4 小时前
opencv(c++)---自带的卷积运算filter2D以及应用sweetheart7-74 小时前
LeetCode20. 有效的括号(2024冬季每日一题 11)gma9995 小时前
brpc 与 Etcd 二次封装ö Constancy5 小时前
设计LRU缓存C++忠实粉丝6 小时前
计算机网络socket编程(2)_UDP网络编程实现网络字典