国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《UE5_C++多人TPS完整教程》學(xué)習(xí)筆記15 ——《P16 會(huì)話接口委托(Session Interface Delegates)》

這篇具有很好參考價(jià)值的文章主要介紹了《UE5_C++多人TPS完整教程》學(xué)習(xí)筆記15 ——《P16 會(huì)話接口委托(Session Interface Delegates)》。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


本文為B站系列教學(xué)視頻 《UE5_C++多人TPS完整教程》 —— 《P16 會(huì)話接口委托(Session Interface Delegates)》 的學(xué)習(xí)筆記,該系列教學(xué)視頻為 Udemy 課程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻譯版,UP主(也是譯者)為 游戲引擎能吃么。



P16 會(huì)話接口委托

本節(jié)課我們將向新創(chuàng)建的子系統(tǒng)添加會(huì)話接口函數(shù)、委托及與其綁定的回調(diào)函數(shù)、委托句柄(保存委托,以便在委托完成時(shí)能將其移出委托列表)。
ue5 銷毀session,# 《UE5_C++多人TPS完整教程》學(xué)習(xí)筆記,ue5,游戲,c++


16.1 會(huì)話接口函數(shù)及委托句柄

  1. 《P7 在線會(huì)話控制(Online Sessions)》 中曾提到,一個(gè)典型的會(huì)話 生命周期Lifetime)包括會(huì)話由需求創(chuàng)建、等待玩家加入、為每個(gè)加入的玩家注冊(cè)、會(huì)話開(kāi)始、進(jìn)行多人游戲、會(huì)話結(jié)束、取消玩家注冊(cè)、會(huì)話更新或銷毀。我們只需要 “CreateSession()”、“FindSessions()”、“JoinSession()”、“StartSession()”、“DestroySession” 這些會(huì)話接口函數(shù)即可實(shí)現(xiàn)上述生命周期。我們將在自己創(chuàng)建的子系統(tǒng)上定義這些函數(shù),同時(shí)創(chuàng)建委托及與其綁定的回調(diào)函數(shù)、委托句柄。
    ue5 銷毀session,# 《UE5_C++多人TPS完整教程》學(xué)習(xí)筆記,ue5,游戲,c++

  2. 具體的步驟是:我們構(gòu)造委托并將回調(diào)函數(shù)綁定到委托上,使用對(duì)應(yīng)的 “AddOn...CompleteDelegate_Handle()” 函數(shù)(這里以 “AddOnCreateSessionCompleteDelegate_Handle()” 函數(shù)為例)添加到委托列表的委托,然后定義一個(gè)委托句柄類型 “FDelegateHandle” 的變量來(lái)保存添加到委托列表的委托,以便委托完成后使用 “ClearOn..CompleteDelegate_Handle()” 函數(shù)(這里以 “ClearOnCreateSessionCompleteDelegate_Handle()” 函數(shù)為例)將其移出委托列表。
    ue5 銷毀session,# 《UE5_C++多人TPS完整教程》學(xué)習(xí)筆記,ue5,游戲,c++

16.2 定義與會(huì)話處理相關(guān)的函數(shù)

  1. 在 “MultiplayerSessionsSubsystem.h” 中定義會(huì)話接口函數(shù)、委托及將與其綁定的回調(diào)函數(shù)、委托句柄。
    UCLASS()
    class MULTIPLAYERSESSIONS_API UMultiplayerSessionsSubsystem : public UGameInstanceSubsystem
    {
    	GENERATED_BODY()
    
    public:
    	UMultiplayerSessionsSubsystem();
    
    	/* P16 會(huì)話接口委托(Session Interface Delegates)*/
    	// 菜單類將會(huì)調(diào)用以下會(huì)話接口函數(shù)
    	void CreateSession(int32 NumpublicConnections, FString MatchType);	// 創(chuàng)建游戲會(huì)話
    	void FindSessions(int32 MaxSearchResults);							// 查找游戲會(huì)話
    	void JoinSession(const FOnlineSessionSearchResult& SessionResult);	// 加入游戲會(huì)話
    	void DestroySession();	// 銷毀會(huì)話
    	void StartSession();	// 開(kāi)始會(huì)話
    	/* P16 會(huì)話接口委托(Session Interface Delegates)*/
    
    protected:
    	/* P16 會(huì)話接口委托(Session Interface Delegates)*/
    	// 為將要添加到委托列表的委托定義類內(nèi)部的回調(diào)函數(shù),不需要在類外調(diào)用
    	void OnCreateSessionComplete(FName SessionName, bool bWasSuccessful);	// 委托 CreateSessionCompleteDelegate 的回調(diào)函數(shù)
    	void OnFindSessionsComplete(bool bWasSuccessful);						// 委托 FindSessionCompleteDelegate 的回調(diào)函數(shù)
    	void OnJoinSessionComplete(FName SessionName, EOnJoinSessionCompleteResult::Type Result);	// 委托 JoinSessionCompleteDelegate 的回調(diào)函數(shù)
    	void OnDestroySessionComplete(FName SessionName, bool bWasSuccessful);	// 委托 DestroySessionCompleteDelegate 的回調(diào)函數(shù)
    	void OnStartSessionComplete(FName SessionName, bool bWasSuccessful);	// 委托 StartSessionCompleteDelegate 的回調(diào)函數(shù)
    	/* P16 會(huì)話接口委托(Session Interface Delegates)*/
    
    private:
    	// 會(huì)話接口智能指針
    	IOnlineSessionPtr SessionInterface;	// 添加頭文件 "Interfaces/OnlineSessionInterface.h" 后使用,更具可讀性
    	// TSharedPtr<class IOnlineSession, ESPMode::ThreadSafe> SessionInterface;	// 使用 TSharedPtr 智能指針包裝器進(jìn)行聲明
    
    	/* P16 會(huì)話接口委托(Session Interface Delegates)*/
    	// 定義與會(huì)話接口函數(shù)相關(guān)的委托
    	FOnCreateSessionCompleteDelegate CreateSessionCompleteDelegate;		// 會(huì)話創(chuàng)建完成委托
    	FOnFindSessionsCompleteDelegate FindSessionsCompleteDelegate;		// 會(huì)話查找完成委托
    	FOnJoinSessionCompleteDelegate JoinSessionCompleteDelegate;			// 會(huì)話加入完成委托
    	FOnDestroySessionCompleteDelegate DestroySessionCompleteDelegate;	// 會(huì)話銷毀完成委托
    	FOnStartSessionCompleteDelegate StartSessionCompleteDelegate;		// 會(huì)話開(kāi)始完成委托
    
    	// 定義委托句柄
    	FDelegateHandle CreateSessionCompleteDelegateHandle;				// 會(huì)話創(chuàng)建完成委托句柄
    	FDelegateHandle FindSessionsCompleteDelegateHandle;					// 會(huì)話查找完成委托句柄
    	FDelegateHandle JoinSessionCompleteDelegateHandle;					// 會(huì)話加入完成委托句柄
    	FDelegateHandle DestroySessionCompleteDelegateHandle;				// 會(huì)話銷毀完成委托句柄
    	FDelegateHandle StartSessionCompleteDelegateHandle;					// 會(huì)話開(kāi)始完成委托句柄
    	/* P16 會(huì)話接口委托(Session Interface Delegates)*/
    };
    
  2. 在 “MultiplayerSessionsSubsystem.cpp” 中將委托及與對(duì)應(yīng)的回調(diào)函數(shù)進(jìn)行綁定。
    UMultiplayerSessionsSubsystem::UMultiplayerSessionsSubsystem():	// 為委托綁定回調(diào)函數(shù)
    	/* P16 會(huì)話接口委托(Session Interface Delegates)*/
    	CreateSessionCompleteDelegate(FOnCreateSessionCompleteDelegate::CreateUObject(this, &ThisClass::OnCreateSessionComplete)),
    	FindSessionsCompleteDelegate(FOnFindSessionsCompleteDelegate::CreateUObject(this, &ThisClass::OnFindSessionsComplete)),
    	JoinSessionCompleteDelegate(FOnJoinSessionCompleteDelegate::CreateUObject(this, &ThisClass::OnJoinSessionComplete)),
    	DestroySessionCompleteDelegate(FOnDestroySessionCompleteDelegate::CreateUObject(this, &ThisClass::OnDestroySessionComplete)),
    	StartSessionCompleteDelegate(FOnStartSessionCompleteDelegate::CreateUObject(this, &ThisClass::OnStartSessionComplete))
    	/* P16 會(huì)話接口委托(Session Interface Delegates)*/
    {
    	IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get();			// 獲取當(dāng)前的在線子系統(tǒng)指針
    	if (OnlineSubsystem) {													// 如果當(dāng)前在線子系統(tǒng)有效
    		SessionInterface = OnlineSubsystem->GetSessionInterface();	// 獲取會(huì)話接口智能指針
    	}
    }
    

·

16.3 Summary

本節(jié)課依照會(huì)話生命周期定義了與會(huì)話管理相關(guān)的在線接口函數(shù)、委托及其對(duì)應(yīng)的回調(diào)函數(shù),并將回調(diào)函數(shù)綁定到委托上,使用對(duì)應(yīng)的 “AddOn...CompleteDelegate_Handle()” 函數(shù)添加到委托列表的委托,然后定義一個(gè)委托句柄類型 “FDelegateHandle” 的變量來(lái)保存添加到委托列表的委托,以便委托完成后使用 “ClearOn..CompleteDelegate_Handle()” 函數(shù)將其移出委托列表。
ue5 銷毀session,# 《UE5_C++多人TPS完整教程》學(xué)習(xí)筆記,ue5,游戲,c++文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-829722.html


到了這里,關(guān)于《UE5_C++多人TPS完整教程》學(xué)習(xí)筆記15 ——《P16 會(huì)話接口委托(Session Interface Delegates)》的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • UE5學(xué)習(xí)筆記(1)——從源碼開(kāi)始編譯安裝UE5

    UE5學(xué)習(xí)筆記(1)——從源碼開(kāi)始編譯安裝UE5

    0.1 在windows的話,建議裝一個(gè)Git bash,同時(shí)還要有自己的github賬號(hào),注冊(cè)github賬號(hào)這里就不再贅述了,安裝git bash后,設(shè)置自己的github賬號(hào)?;蛘咴趙indows裝一個(gè)WSL。 0.2 把自己的github賬號(hào)關(guān)聯(lián)Epic官方,必須關(guān)聯(lián)之后才能下載Unreal的源碼。關(guān)聯(lián)方式見(jiàn)官方教程 0.3 安裝VS 2022,這里

    2024年02月08日
    瀏覽(103)
  • (最新詳細(xì)下載UE5教程)學(xué)習(xí)UE5的第一步;下載Epic及從Epic中選取相關(guān)引擎及啟動(dòng)UE5/day.1

    (最新詳細(xì)下載UE5教程)學(xué)習(xí)UE5的第一步;下載Epic及從Epic中選取相關(guān)引擎及啟動(dòng)UE5/day.1

    虛幻引擎5是EPIC于2020年公布的第五代游戲引擎,其實(shí)吧吧啦吧啦這么多毛用也沒(méi)有,大伙也知道這些東西,不知道的也不會(huì)想學(xué)??。 那么,就進(jìn)入正題吧! 各位玩游戲嗎?玩的話那肯定知道EPIC,也就是各大玩友戲稱為“E寶”的游戲商店;(如果你下載了的話直接跳到第二

    2023年04月10日
    瀏覽(92)
  • UE5 C++學(xué)習(xí)筆記 常用宏的再次理解

    UE5 C++學(xué)習(xí)筆記 常用宏的再次理解

    1.隨意創(chuàng)建一個(gè)類,他都有UCLASS()。GENERATED_BODY()這樣的默認(rèn)的宏。 UCLASS() 告知虛幻引擎生成類的反射數(shù)據(jù)。類必須派生自UObject. (告訴引擎我是從遠(yuǎn)古大帝UObject中,繼承而來(lái),我們是一家人,只是我進(jìn)化了其他功能) GENERATED_BODY()表示我們不直接使用父類的構(gòu)造函數(shù),如果我

    2024年01月20日
    瀏覽(95)
  • UE5學(xué)習(xí)筆記(十四)——藍(lán)圖基礎(chǔ)之第一次做界面

    目錄 制作一個(gè)簡(jiǎn)單的UI 步驟1:添加一個(gè)界面,并顯示在屏幕上 【知識(shí)點(diǎn)】在關(guān)卡界面調(diào)用控件的值 步驟2:藍(lán)圖控制文字改變

    2024年02月04日
    瀏覽(95)
  • UE5 C++學(xué)習(xí)筆記 FString FName FText相互轉(zhuǎn)換

    UE5 C++學(xué)習(xí)筆記 FString FName FText相互轉(zhuǎn)換

    1.FString 是UE里的String。最接近std::string, 唯一可以修改的字符串類型。性能更低 TEXT(string) TEXT宏,作用是將字符串轉(zhuǎn)換成Unicode,切記UE中使用字符串輸出要使用該宏 2. FName 是UE里特有的類型。它更注重于表示名稱不區(qū)分大小寫,不可以更改。引擎中的資源名稱都是FName類型,通

    2024年01月22日
    瀏覽(82)
  • UE5 C++ 學(xué)習(xí)筆記 UBT UHT 和 一些頭文件

    UE5 C++ 學(xué)習(xí)筆記 UBT UHT 和 一些頭文件

    總結(jié)一些似懂非懂的知識(shí)點(diǎn),從頭慢慢梳理。 任何一個(gè)項(xiàng)目都有創(chuàng)建這些三個(gè).cs。 這個(gè)是藍(lán)圖轉(zhuǎn)C++ 這個(gè)是本身就是C++項(xiàng)目,應(yīng)該就是多了一個(gè)GameModeBase類 Build.cs包含了每個(gè)模塊的信息,表明了這個(gè)項(xiàng)目用到了哪一些模塊。該文件里的using UnrealBuilTool 是使用虛幻的編譯工具,編

    2024年01月20日
    瀏覽(94)
  • UE5【UMG】 - Simple Menu UI v3 學(xué)習(xí)筆記

    UE5【UMG】 - Simple Menu UI v3 學(xué)習(xí)筆記

    案例地址:https://www.unrealengine.com/marketplace/zh-CN/product/simple-menu-ui 這個(gè)Demo簡(jiǎn)單,基本結(jié)構(gòu)都有,可以用來(lái)入手學(xué)習(xí) 1) 先查看 Project-MapsModes,找到默認(rèn)啟動(dòng)Map、GameMode與GameInstance;此外,Input設(shè)置也需要看下。 2)當(dāng)UE5程序啟動(dòng)時(shí),默認(rèn)啟動(dòng)GameInstance、GameMode與默認(rèn)Map; 接著,

    2024年02月06日
    瀏覽(23)
  • UE5學(xué)習(xí)筆記(一)——界面功能梳理&第一天知識(shí)點(diǎn)記錄

    UE5學(xué)習(xí)筆記(一)——界面功能梳理&第一天知識(shí)點(diǎn)記錄

    學(xué)習(xí)UE5的第一步,是軟件安裝。 默認(rèn)是安裝好的,由于安裝沒(méi)有太多技術(shù)含量,所以就沒(méi)有專門做記錄。 這里有個(gè)注意點(diǎn),虛幻引擎是整合在Epic games launcher中的,也就是說(shuō)開(kāi)發(fā)引擎內(nèi)嵌在游戲平臺(tái)上,打個(gè)比方,就是如果你要下unity你必須先下一個(gè)steam的感覺(jué)。 當(dāng)然,在完

    2024年02月04日
    瀏覽(96)
  • UE5.1.1 C++從0開(kāi)始(15.作業(yè)4個(gè)人作業(yè)分享)

    UE5.1.1 C++從0開(kāi)始(15.作業(yè)4個(gè)人作業(yè)分享)

    教程鏈接:https://www.bilibili.com/video/BV1nU4y1X7iQ 好吧這個(gè)作業(yè)應(yīng)該是之前寫的,但是我發(fā)現(xiàn)我沒(méi)寫,后面我又回去自己寫了一遍再看代碼,感覺(jué)上大差不差,各位可以看著我的和老師的還有自己的對(duì)比下。 SBTService_CheckHealth.h SBTService_CheckHealth.cpp SBTTask_HealSelf.h SBTTask_HealSelf.cpp 行

    2024年02月11日
    瀏覽(43)
  • 【UE5 Cesium】15-Cesium for Unreal 加載本地影像和地形

    【UE5 Cesium】15-Cesium for Unreal 加載本地影像和地形

    目錄 一、加載全球無(wú)高度地形 二、加載區(qū)域DEM 三、加載離線地圖影像 1. 先去如下網(wǎng)址下載全球無(wú)高度地形:Using a global terrain layer without height detail - #9 by RidhwanAziz - Cesium for Unreal - Cesium Community 下載后如下: 解壓后可以看到是一個(gè).tif格式的文件 2. 打開(kāi)CesiumLab,需要將tif轉(zhuǎn)為

    2024年02月07日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包