《UE5_C++多人TPS完整教程》学习笔记23 ——《P24 通往大厅关卡的路径(Path to Lobby)》


本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 —— 《P24 通往大厅关卡的路径(Path to Lobby)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么。


文章目录

  • P24 通往大厅关卡的路径
  • 24.1 指定大厅关卡路径
  • 24.2 Summary


P24 通往大厅关卡的路径

本节课将之前硬编码(Hard coding)的大厅关卡 “Lobby” 路径设置为一个可供玩家输入的变量,这样我们的插件就能够添加到任意项目中,并且在任意项目中能够指定大厅关卡 “Lobby” 路径,具体的做法是为菜单类 “MenuSetup()” 函数添加一个入参。
在这里插入图片描述


24.1 指定大厅关卡路径

  1. 在 “Menu.h” 中声明 “PathToLobby”,为 “MenuSetup()” 添加入参 “LobbyPath”,并设置其默认值为 “FString(TEXT("/Game/ThirdPerson/Maps/Lobby")))”。

    UCLASS()
    class MULTIPLAYERSESSIONS_API UMenu : public UUserWidget
    {GENERATED_BODY()public:/* P24 通往大厅关卡的路径(Path to Lobby)*/// 为 MenuSetup() 添加可供玩家输入的参数项(公共连接数和匹配类型)// 设置 NumberOfPublicConnections 默认值为 4,TypeOfMatch 默认值为 "FreeForAll"UFUNCTION(BlueprintCallable)void MenuSetup(int32 NumberOfPublicConnections = 4, FString TypeOfMatch = FString(TEXT("FreeForAll")), FString LobbyPath = FString(TEXT("/Game/ThirdPerson/Maps/Lobby")));/* P24 通往大厅关卡的路径(Path to Lobby)*/...private:...int32 NumPublicConnections{ 4 };			// 公共连接数FString MatchType = { TEXT("FreeForAll") };	// 匹配类型/* P24 通往大厅关卡的路径(Path to Lobby)*/FString PathToLobby = { TEXT("") };/* P24 通往大厅关卡的路径(Path to Lobby)*/
    };
    
  2. 在 “Menu.cpp” 的 “MenuSetup()” 函数中为 “PathToLobby” 赋值,此过程需要进行字符串格式化操作。然后在 “OnCreateSession()” 中修改 “ServerTravel() 函数入参为 “PathToLobby”,这样

    void UMenu::MenuSetup(int32 NumberOfPublicConnections, FString TypeOfMatch, FString LobbyPath)
    {NumPublicConnections = NumberOfPublicConnections;MatchType = TypeOfMatch;/* P24 通往大厅关卡的路径(Path to Lobby)*/PathToLobby = FString::Printf(TEXT("%s?listen"), *LobbyPath);/* P24 通往大厅关卡的路径(Path to Lobby)*/...}...void UMenu::OnCreateSession(bool bWasSuccessful)
    {if (bWasSuccessful) {...// 会话创建成功后传送至关卡 LobbyUWorld* World = GetWorld();if (World) {/* P24 通往大厅关卡的路径(Path to Lobby)*/// Uworld->ServerTravel:https://docs.unrealengine.com/5.0/en-US/API/Runtime/Engine/Engine/UWorld/ServerTravel/World->ServerTravel(PathToLobby);	// 作为监听服务器打开 Lobby 关卡/* P24 通往大厅关卡的路径(Path to Lobby)*/}}else {...}}
    }
    
  3. 至此我们就可以在 “ThirdPersonMap” 蓝图关卡中 “Menusetup” 节点的 “LobbyPath” 引脚指定大厅的路径了。
    在这里插入图片描述

  4. 进行测试。在“ThirdPersonMap” 蓝图关卡中 “Menusetup” 节点的 “LobbyPath” 引脚指定初学者内容中的关卡 “StarterMap” 为大厅关卡,编译、保存后运行游戏,可以发现大厅关卡变成了 “StarterMap”。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


24.2 Summary

本节课具体的做法是为菜单类 “MenuSetup()” 函数添加一个入参 “LobbyPath”,将之前硬编码的大厅关卡 “Lobby” 路径设置为一个可供玩家输入的变量,进行测试时以初学者内容中的关卡 “StartMap”为例,尝试在“ThirdPersonMap” 蓝图关卡中 “Menusetup” 节点的 “LobbyPath” 引脚指定该关卡为大厅关卡。
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/485550.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 学习和实践笔记(16):类的理解以及初始值

类,英文名叫class。基本上对应的就是语言里的名词。 比如,房子、人、树、花、汽车等等,这些名词,这些可以定义成类。 以房子为例,作为一个房子,它一定有相应的属性,比如房顶、墙、门、窗等等&…

企业品牌软文发布在媒体上,有啥用呢

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 通常企业都会建立自己的媒体矩阵,在公众号,视频号,抖音,网易号,搜狐号等企业品牌矩阵中发布软文,公司动态&#xf…

【MySQL】如何理解索引(高频面试点)

一、前言 首先这个博客会介绍一些关于MySQL中索引的基本内容以及一些基本的语法,当然里面也会有些常见的面试题的解答。 二、关于索引 1、概念 索引是一种能够帮助MySQL高效的去磁盘检索数据的一种数据结构。在MySQL的Innodb存储引擎中呢,采用的是B树的…

Mendix 实现WMS物料移动场景

前言 见客多了,总有那么一些客户让你心生敬佩! 他们总能抓住事物本质,即使是沟通低代码时,提的问题也直击内核。 去年初有客户问“如何用3-4张表实现一个问卷应用,问题数量不确定且类型多样”。 这个深刻问题体现出…

大数据揭秘:Hadoop短视频流量分析实战

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【高频SQL基础版本】1204.最后一个能进入巴士的人

题目: 自己去搜一下吧。 解题思路: 这里最重要的知识点是累加求和,而不是直接汇总求和。 如果直接汇总求和体重就是SUM(weight),而根据turn的次序,累加求和,则需要SUM(weight)over (order by turn),这样…

华为算法题 go语言或者ptython

1 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返…

Hudi程序导致集群RPC偏高问题分析

1、背景 Hudi程序中upsert操作频繁,过多的删除和回滚操作,导致集群RPC持续偏高 2、描述 hudi采用的是mvcc设计,提供了清理工具cleaner来把旧版本的文件分片删除,默认开启了清理功能,可以防止文件系统的存储空间和文件数量的无限…

ITSM专家会诊功能上线,群聊解难题,协同解决就这么简单!

在最新推出的V1.28.0版本中,燕千云带来了一系列激动人心的新功能及优化,旨在全面提升您的工作效率和体验:全新的多会话模式,大幅强化的Prompt模板,便捷的群聊功能,智能工单旅程和审批单动态记录的深度优化&…

RAW 编程接口 TCP 简介

一、LWIP 中 中 RAW API 编程接口中与 TCP 相关的函数 二、LWIP TCP RAW API 函数 三、LwIP_Periodic_Handle函数 LwIP_Periodic_Handle 函数是一个必须被无限循环调用的 LwIP支持函数,一般在 main函数的无限循环中调用,主要功能是为 LwIP各个模块提供…

【思扬赠书 | 第3期】由面试题“Redis是否为单线程”引发的思考

⛳️ 写在前面参与规则!!! ✅参与方式:关注博主、点赞、收藏、评论,任意评论(每人最多评论三次) ⛳️本次送书1~4本【取决于阅读量,阅读量越多,送的越多】 很多人都遇到…

java.lang.IllegalStateException: Promise already completed.

spark submit 提交作业的时候提示Promise already complete 完整日志如下 File "/data5/hadoop/yarn/local/usercache/processuser/appcache/application_1706192609294_136972/container_e41_1706192609294_136972_02_000001/py4j-0.10.6-src.zip/py4j/protocol.py"…