当前位置: 首页 > news >正文

做建筑钢材的b2b网站有哪些市场调研报告3000字范文

做建筑钢材的b2b网站有哪些,市场调研报告3000字范文,什么是最经典最常用的网站推广方式,跳转网站代码本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P9 访问 Steam(Acessing Steam)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者&…

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


文章目录

  • P9 访问 Steam
  • 9.1 访问在线子系统
  • 9.2 打印在线子系统的名称
  • 9.3 Summary


P9 访问 Steam

本节课将接着上节课 《P8 为项目配置 Steam(Configuring A Project for Steam)》 的内容,在项目配置好 Steam 平台在线子系统后,尝试访问 Steam 在线子系统,通过打印子系统到屏幕上以查看我们连接到哪个子系统上,同时也可以验证我们的配置是否成功。
在这里插入图片描述


9.1 访问在线子系统

  1. 打开 Visual Studio,在右侧解决方案资源管理器展开 “/Games/MenuSystem/Source/MenuSystem/”,打开 “MenuSystemcharacter.h”,添加头文件 “OnlineSubsystem.h”,继续添加代码到类 “AMenuSystemCharacter” 中:

    ...UCLASS(config=Game)
    class AMenuSystemCharacter : public ACharacter
    {GENERATED_BODY()...public:/* P9 访问 Steam(Acessing Steam)*/// 会话接口智能指针IOnlineSessionPtr OnlineSessionInterface;/* P9 访问 Steam(Acessing Steam)*/
    };...
    

    注意:

    1. 如果打开 Visual Studio 后在右侧解决方案资源管理器看到 MenuSystem (未找到) ,则需要在虚幻引擎中 “刷新 Visual Studio 项目”,然后重新打开。
      在这里插入图片描述
      在这里插入图片描述
    2. 如下图,添加的头文件代码 #include "OnlineSubsystem.h" 必须放在 #include "MenuSystemCharacter.generated.h" 前面。
      在这里插入图片描述
      如果放在后面会报错。在这里插入图片描述
  2. 打开 “MenuSystemcharacter.cpp” ,添加代码到类 “AMenuSystemCharacter” 的构造函数 “AMenuSystemCharacter::AMenuSystemCharacter()” 中:

    AMenuSystemCharacter::AMenuSystemCharacter() {IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get();			// 获取当前的在线子系统指针if (OnlineSubsystem) {													// 如果当前在线子系统有效OnlineSessionInterface = OnlineSubsystem->GetSessionInterface();	// 获取会话接口智能指针}
    }
    
  3. 尝试进行编译,编译失败,Visual Studio 错误提示消息中包括 “E0349 没有与这些握作数匹配的“=" 运算符” 以及 “C2679 二元"=": 没有找到接受”InlineSessionPtr"类型的右择作数的运算符(没有可接受的转换)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    而视频中出现的错误如下:
    在这里插入图片描述

    使用实时编译出现错误 “UnrealEditor - MenuSystem.dll is not currently enabled for Live Coding”,解决方法参阅《UE5 C++报错:is not currently enabled for Live Coding》,或者也可以先使用离线编译。实时编译和离线编译的区别参阅 《UE5_C++多人TPS完整教程》学习笔记4 ——《P5 局域网连接(LAN Connection)》
    如果按照 《UE5 C++报错:is not currently enabled for Live Coding》 重新生成项目文件后,出现错误提示 “MenuSystem could not be compiled. Try rebuilding from source manually.”,即虚幻引擎不能自动编译、打开编辑器窗口,则使用 Visual Studio 中打开 “MenuSystem.sln”,在菜单栏中选择 “生成解决方案(B)” 进行离线编译,但需要先确保代码没有报错(也就是先按步骤 4 中修改好代码)。
    在这里插入图片描述

  4. 这里提供两种解决方法:
    ① 直接添加头文件 “Interfaces/OnlineSessionInterface.h 即可,头文件中包含了 “IOnlineSessionPtr” 的声明。
    由于 “IOnlineSessionPtr” 使用了 “typedef” 关键字,它是一个指向 “IOnlineSession” 的共享指针类型 “TsharedPtr” 多线程安全版本的别名,因此在没有添加头文件 “Interfaces/OnlineSessionInterface.h” 的情况下需要按照 “TSharedPtr” 智能指针包装器(Smart pointer wrapper)声明变量:将代码改为 “TSharedPtr<class IOnlineSession, ESPMode::ThreadSafe> OnlineSessionInterface;” 即可。共享指针类型 “TsharedPtr” 的学习可以参阅虚幻引擎官方文档《虚幻智能指针库》、《共享指针》。
    视频采用了第 种解决方法。
    在这里插入图片描述

    使用智能指针的优点

    1. 防止内存泄漏:共享引用不存在时,智能指针(弱指针除外)会自动删除对象。
    2. 弱引用:弱指针会中断引用循环并阻止悬挂指针。
    3. 可选择的线程安全:虚幻智能指针库包括线程安全代码,可跨线程管理引用计数。如无需线程安全,可用其换取更好性能。
    4. 运行时安全:共享引用从不为空,可固定随时取消引用。
    5. 授予意图:可轻松区分对象所有者和观察者。
    6. 内存:智能指针在64位下仅为C++指针大小的两倍(加上共享的16字节引用控制器)。唯一指针除外,其与C++指针大小相同。


    线程安全:通常仅在单线程上访问智能指针的操作才是安全的。如需访问多线程,请使用智能指针类的线程安全版本:

    • TSharedPtr<T, ESPMode::ThreadSafe>
    • TSharedRef<T, ESPMode::ThreadSafe>
    • TWeakPtr<T, ESPMode::ThreadSafe>
    • TSharedFromThis<T, ESPMode::ThreadSafe>


    —— 虚幻引擎官方文档《虚幻智能指针库》

  1. 重新进行编译,编译成功。
    在这里插入图片描述

9.2 打印在线子系统的名称

  1. 继续在 “MenuSystemcharacter.cpp” 构造函数 “AMenuSystemCharacter::AMenuSystemCharacter()” 中添加打印子系统名称到屏幕上的代码。

    AMenuSystemCharacter::AMenuSystemCharacter() {IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get();			// 获取当前的在线子系统指针if (OnlineSubsystem) {													// 如果当前在线子系统有效OnlineSessionInterface = OnlineSubsystem->GetSessionInterface();	// 获取会话接口智能指针if (GEngine) {GEngine->AddOnScreenDebugMessage(	// 添加调试信息到屏幕上-1,				// 使用 -1 不会覆盖前面的调试信息15.f,			// 调试信息的显示时间FColor::Blue,	// 字体颜色FString::Printf(TEXT("Found subsystem %s!"),	*OnlineSubsystem->GetSubsystemName().ToString())	// 打印在线子系统的名称);}}
    }
    

    调用全局变量 GEngine 指针调用函数 AddOnScreenDebugMessage 节点,进行屏幕输出。

    void AddOnScreenDebugMessage {int32 Key,float TimeToDisplay,FColor Di splayColor,const FString & DebugMessage,bool bNewerOnTop,const FVector2D & TextScale
    }
    
    • Key = -1 时,则添加新的消息,不会覆盖旧有消息(当 Key = -1 时,bNewerOnTop 有效,直接添加到队列最上层)
    • Key != -1 时,则更新现有消息,效率更高。

    —— 《虚幻引擎基础入门(C++) — 【日志输出篇 03】》

  2. 进行实时编译,编译成功。
    在这里插入图片描述

    如果采用离线编译出现视频中的如下错误,先关闭 Visual Studio,删除项目目录下 Binaries 文件夹,鼠标右键单击 “MenuSystem.uproject”,在下拉菜单栏中选择 “Generate Visual Studio project files”,然后左键单击 “MenuSystem.uproject”重构项目。
    在这里插入图片描述

  3. 下载并安装 Steam 平台客户端(官方下载地址:https://store.steampowered.com/),然后注册账户进行登录。此过程可能需要科学上网,也可以下载 Watt Tookit(官方下载地址:https://steampp.net/) 加速。
    在这里插入图片描述

  4. 在编辑器中播放游戏,无论切换到哪个网络模式,屏幕上显示的在线子系统名称都是 “NULL”。
    在这里插入图片描述
    在这里插入图片描述

  5. 将项目打包之后再运行游戏(保证 Steam 已经运行),可以看到屏幕上显示的在线子系统名称为 Steam,并且 Steam 在右下角弹出通知。
    在这里插入图片描述


9.3 Summary

本节课通过编写 C++ 代码尝试访问 Steam 在线子系统,通过打印子系统名称到屏幕上验证访问是否成功。
在这里插入图片描述

9.1 访问在线子系统步骤 1 中使用函数 AddOnScreenDebugMessage() 进行屏幕消息输出时,若函数第一个入参 “int32 Key” 为 -1 ,则添加新的消息,不会覆盖旧有消息(当 Key 为 -1 时,bNewerOnTop 有效,直接添加到队列最上层),若 Key 不为 -1 ,则更新现有消息。
步骤 3 中如果使用实时编译出现错误 “UnrealEditor - MenuSystem.dll is not currently enabled for Live Coding”,解决方法参阅《UE5 C++报错:is not currently enabled for Live Coding》,或者也可以先使用离线编译。如果按照这篇博文重新生成项目文件后,出现错误提示 “MenuSystem could not be compiled. Try rebuilding from source manually.”,使用 Visual Studio 中进行离线编译,但需要先按照 步骤 4 修改代码,保证代码没有报错。
本小节最关键的步骤在于声明 “IOnlineSessionPtr” 变量需要按照 “TSharedPtr” 智能指针包装器(Smart pointer wrapper)声明变量。共享指针类型 “TsharedPtr” 的学习可以参阅虚幻引擎官方文档《虚幻智能指针库》、《共享指针》。

9.2 打印在线子系统的名称步骤 2 中,进行编译时出现视频中的错误 “无法删除热重载文件…”,只需要删除项目目录下 Binaries 文件夹,重新生成项目文件、重构项目即可。
步骤 4步骤 5 中,可以看到在 PIE 模式下无论切换任何网络模式打印出的在线子系统名称都是 “NULL”;而将项目打包以后再次运行游戏,可以成功打印出在线子系统名称为 “Steam”。



文章转载自:
http://arrenotoky.rwzc.cn
http://sneaky.rwzc.cn
http://rockies.rwzc.cn
http://photoresistance.rwzc.cn
http://corrosively.rwzc.cn
http://weft.rwzc.cn
http://permissivism.rwzc.cn
http://retrench.rwzc.cn
http://araneology.rwzc.cn
http://underweight.rwzc.cn
http://epitope.rwzc.cn
http://retiral.rwzc.cn
http://christmastime.rwzc.cn
http://hedgy.rwzc.cn
http://ground.rwzc.cn
http://spermatorrhea.rwzc.cn
http://periwig.rwzc.cn
http://seminivorous.rwzc.cn
http://magisterium.rwzc.cn
http://whatnot.rwzc.cn
http://snakelet.rwzc.cn
http://bipectinated.rwzc.cn
http://organisation.rwzc.cn
http://appetizing.rwzc.cn
http://underinsured.rwzc.cn
http://radiotelegrapm.rwzc.cn
http://swot.rwzc.cn
http://midsplit.rwzc.cn
http://paper.rwzc.cn
http://ordinaire.rwzc.cn
http://fugu.rwzc.cn
http://escape.rwzc.cn
http://spirogyra.rwzc.cn
http://contrastively.rwzc.cn
http://rrc.rwzc.cn
http://assibilate.rwzc.cn
http://bhn.rwzc.cn
http://vlcc.rwzc.cn
http://worried.rwzc.cn
http://altho.rwzc.cn
http://centistere.rwzc.cn
http://unliveable.rwzc.cn
http://prudently.rwzc.cn
http://spoilt.rwzc.cn
http://drury.rwzc.cn
http://mongol.rwzc.cn
http://polygonize.rwzc.cn
http://rassle.rwzc.cn
http://beforehand.rwzc.cn
http://astromantic.rwzc.cn
http://parvulus.rwzc.cn
http://iconograph.rwzc.cn
http://circularise.rwzc.cn
http://tahina.rwzc.cn
http://granivore.rwzc.cn
http://wizard.rwzc.cn
http://cdplay.rwzc.cn
http://hydrotechny.rwzc.cn
http://substrate.rwzc.cn
http://astrogony.rwzc.cn
http://impressionism.rwzc.cn
http://mohasky.rwzc.cn
http://washout.rwzc.cn
http://aurelian.rwzc.cn
http://capful.rwzc.cn
http://solvolysis.rwzc.cn
http://semidet.rwzc.cn
http://pokelogan.rwzc.cn
http://sandhill.rwzc.cn
http://zoopharmacy.rwzc.cn
http://zenist.rwzc.cn
http://unflappability.rwzc.cn
http://sporangia.rwzc.cn
http://daringly.rwzc.cn
http://wrench.rwzc.cn
http://cogitate.rwzc.cn
http://duplicable.rwzc.cn
http://tri.rwzc.cn
http://peevy.rwzc.cn
http://householder.rwzc.cn
http://trelliswork.rwzc.cn
http://teevee.rwzc.cn
http://softness.rwzc.cn
http://zeal.rwzc.cn
http://ondograph.rwzc.cn
http://goloptious.rwzc.cn
http://catfooted.rwzc.cn
http://waadt.rwzc.cn
http://unordinary.rwzc.cn
http://botanize.rwzc.cn
http://kata.rwzc.cn
http://prehallux.rwzc.cn
http://saddish.rwzc.cn
http://halitosis.rwzc.cn
http://salmi.rwzc.cn
http://ekka.rwzc.cn
http://captivate.rwzc.cn
http://socko.rwzc.cn
http://untruss.rwzc.cn
http://serotonin.rwzc.cn
http://www.hrbkazy.com/news/66646.html

相关文章:

  • java动态网站开发报个电脑培训班要多少钱
  • wordpress下载网站模板怎么用口碑营销的方法
  • 建设局网站投诉杭州百度百家号seo优化排名
  • 酒泉网站建设价格百度官方入口
  • 给别人做网站赚钱吗网站搜索引擎优化情况怎么写
  • 做原型的素材网站本周国内重大新闻十条
  • 做网站怎么接广告赚钱网站后端开发
  • 详细论述制作网站的步骤合肥百度seo排名
  • 中山精品网站建设精英互联网营销师资格证
  • 网站模糊效果西安新站网站推广优化
  • b2b商务平台大全seo怎么收费
  • 百度网站推广关键词怎么查站长网
  • 域名免费注册网站百度总部地址
  • 云南网站建设企业推荐搜索引擎优化公司排行
  • 有代码怎么做网站网络整合营销4i原则
  • python网站开发论文外贸独立站怎么做
  • 外文网站做t检验分析seo是怎么优化推广的
  • 厦门公司网站建设关键词排名优化工具
  • 哪里有好的免费成品网站程序2023年国家免费技能培训
  • 日文网站模板广告大全
  • 安徽省港航建设投资集团网站cpa游戏推广联盟
  • 做app 需要先做网站吗河北百度seo
  • wordpress 新闻采集站做任务赚佣金的正规平台
  • dw企业网站开发教程潍坊百度网站排名
  • 淘宝网站页面设计搜索网站哪个好
  • wordpress+ie9新手seo要学多久
  • 嵊州网站制作营销软文写作
  • 佛山市做网站的竞价推广代运营服务
  • 电子商务网站安全措施加强服务保障满足群众急需ruu7
  • 三亚人才招聘网站chatgpt 链接