《UE5_C++多人TPS完整教程》学习笔记7 ——《P8 为项目配置 Steam(Configuring A Project for Steam)》

本文主要是介绍《UE5_C++多人TPS完整教程》学习笔记7 ——《P8 为项目配置 Steam(Configuring A Project for Steam)》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 —— 《P8 为项目配置 Steam(Configuring A Project for Steam)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么。


文章目录

  • P8 为项目配置 Steam
  • 8.1 在线子系统类
  • 8.2 创建项目并配置 Steam
  • 8.3 Summary


P8 为项目配置 Steam

本节课将创建一个新的虚幻引擎项目,并为它配置使用 Steam 平台在线子系统。
在这里插入图片描述


8.1 在线子系统类

  1. 虚幻引擎的在线子系统提供了一种访问在线平台服务(SteamXbox Live等)的方法,利用在线子系统可以处理任何在线平台服务的好友、成就、设置配对会话(Setting up matching sessions)等系统功能,而我们必须要做的就是为特定的平台配置我们的项目。
    在这里插入图片描述

  2. 我们需要在 Engine.ini 这个配置文件下指定默认平台服务。虚化引擎的在线子系统可以通过 “IOnlineSubsystem” 类中的静态函数 “Get” 进行访问,该函数返回值是一个指向相应子系统的指针,具体参阅官方文档 《IOnlineSubsystem::Get》
    在这里插入图片描述


8.2 创建项目并配置 Steam

  1. 创建第三人称游戏项目,名称为 “MenuSystem”。
    在这里插入图片描述

  2. 打开“插件”(Plugins)浏览器选项卡,启用(Enabled) “Online Subsystem Steam” 插件,重启虚幻引擎。
    在这里插入图片描述

  3. 打开 Visual Studio,在右侧解决方案资源管理器展开 “/Games/MenuSystem/Source/MenuSystem/”,打开 C# 文件 “MenuSystem.Build.cs”,添加公共依赖模块名称(Public dependency module names) “OnlineSubsystemSteam” 和 “OnlineSubsystem” 后进行编译,其中 “OnlineSubsystem” 是与 “OnlineSubsystemSteam” 交互的 总体子系统Overall subsystem)。
    在这里插入图片描述

    注意 "OnlineSubsystem" 后面要留有一个空格,否则编译会出现以下错误
    在这里插入图片描述

  4. 在 “/MenuSystem/Config/” 目录下打开 “DefaultEnigne.ini”,在官方文档 《Online Subsystem Steam》中将示例的配置代码复制粘贴到 “DefaultEnigne.ini” 的后面。配置代码的含义参阅官方文档。

    [/Script/Engine.GameEngine]
    +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")[OnlineSubsystem]
    DefaultPlatformService=Steam[OnlineSubsystemSteam]
    bEnabled=true
    SteamDevAppId=480; If using Sessions
    ; bInitServerOnClient=true[/Script/OnlineSubsystemSteam.SteamNetDriver]
    NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"	
    

    在这里插入图片描述

    NetDriverDefinitions 描述了可供UE使用的网络驱动器,并添加了以下属性:

    • DefName 是该网络驱动器定义的唯一名称。
    • DriverClassName 是主网络驱动器的类名称。
    • DriverClassNameFallBack 是退却网络驱动器的类名(如果主网络驱动器类初始化失败)。

    —— 虚幻引擎官方文档 《Online Subsystem Steam》

  5. 关闭 Visual Studio和虚幻引擎,删除工程目录自动生成的(auto-generated)下 “Binaries”、“Intermediate”和“Saved” 三个文件夹。
    在这里插入图片描述

  6. 点击 “MenuSystem.uproject”,重新构建项目,可以看到出现提示窗口 “Missing MenuSystem Modules”,点击 “是(Y)”,虚幻引擎将重新启动,“Binaries”、“Intermediate”和“Saved” 三个文件夹将重新生成。
    在这里插入图片描述


8.3 Summary

本节课创建了一个新的虚幻引擎第三人称游戏项目 “MenuSystem”,然后通过修改项目配置文件 “MenuSystem.Build.cs” 和 “DefaultEngine.ini”来为项目设定使用 Steam 平台在线子系统。
在这里插入图片描述
8.1 在线子系统类 中,虚化引擎的在线子系统可以通过 “IOnlineSubsystem” 类中的静态函数 “Get” 进行访问,该函数返回值是一个指向相应子系统的指针,具体参阅官方文档 《IOnlineSubsystem::Get》。

8.2 创建工程并配置 Steam步骤 3 中,修改配置文件 “MenuSystem.Build.cs” 时要注意添加了 "OnlineSubsystem" 后要留一个空格,否则编译会出现错误。
8.2 创建工程并配置 Steam步骤 4 中,配置 “DefaultEnigne.ini” 的示例代码中每一行的含义在在官方文档 《Online Subsystem Steam》中都有说明。


这篇关于《UE5_C++多人TPS完整教程》学习笔记7 ——《P8 为项目配置 Steam(Configuring A Project for Steam)》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701822

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法