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

UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解

這篇具有很好參考價(jià)值的文章主要介紹了UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器

  • ???♂? 作者:海碼007
  • ?? 專(zhuān)欄:UE虛幻引擎專(zhuān)欄
  • ?? 標(biāo)題:UE4 中可全局獲取的變量(例如游戲?qū)嵗⑼婕铱刂破?、游戲模式等?詳解
  • ?? 寄語(yǔ):加油,一次專(zhuān)注一件事!
  • ?? 最后:文章作者技術(shù)和水平有限,如果文中出現(xiàn)錯(cuò)誤,希望大家能指正,同時(shí)有問(wèn)題的話,歡迎大家留言討論。

0 引言

在游戲開(kāi)發(fā)過(guò)程中,有一些變量經(jīng)常需要被別的藍(lán)圖調(diào)用,但是這個(gè)變量又不是全局變量。所以使用前需要通過(guò)Get Actor Of Class(獲取類(lèi)的actor)的方式獲取對(duì)象的引用。但是假如我們將經(jīng)常需要用到的變量存儲(chǔ)在全局對(duì)象當(dāng)中,下次別人要調(diào)用就直接通過(guò)這個(gè)全局對(duì)象來(lái)訪問(wèn)這個(gè)變量。

1 全局對(duì)象(全局變量)

??對(duì)象其實(shí)也是一種變量,所以全局對(duì)象也可以叫做全局變量??

在UE4中,有一些全局可獲取的變量,可以方便地訪問(wèn)和管理游戲的各個(gè)方面。

  • GameInstance 游戲?qū)嵗?/strong>
  • GameViewportClient 游戲視口客戶(hù)端
  • UWorld 游戲世界
  • GameModeBase 游戲模式
  • PlayerController 玩家控制器
  • Actor 演員

通過(guò)這些全局變量,開(kāi)發(fā)者可以方便地訪問(wèn)和管理游戲的不同方面,從而實(shí)現(xiàn)更靈活和高效的游戲邏輯和交互操作。

拓展:在UE4切換關(guān)卡時(shí),下面這些全局變量不會(huì)被釋放:

  • GameInstance 游戲?qū)嵗?/strong>:游戲?qū)嵗械臄?shù)據(jù)將在切換關(guān)卡時(shí)保留,以便在下一個(gè)關(guān)卡中繼續(xù)使用。
  • PlayerController 玩家控制器:玩家控制器是負(fù)責(zé)玩家輸入和控制的對(duì)象,它們?cè)谇袚Q關(guān)卡時(shí)通常會(huì)保持不變。
  • GameModeBase 游戲模式:游戲模式定義了游戲的規(guī)則和邏輯,它們?cè)谇袚Q關(guān)卡時(shí)通常會(huì)保持不變。
  • 主角色(APawn、ACharacter):游戲中主角的演員(Actor)通常會(huì)在切換關(guān)卡時(shí)保持不變。
  • 關(guān)卡關(guān)聯(lián)的演員(Actor):如果某個(gè)actor在關(guān)卡編輯器中被直接放置在關(guān)卡中,那么在切換關(guān)卡時(shí)它們通常會(huì)保持不變。下圖所示,每個(gè)actor都有自己所屬的關(guān)卡
    UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器

需要注意的是,不會(huì)被釋放的變量只是在切換關(guān)卡時(shí)會(huì)保持不變,但在游戲結(jié)束或重新加載游戲時(shí)可能會(huì)被重置或釋放。此外,其他不直接與特定關(guān)卡和角色關(guān)聯(lián)的全局變量也可以在切換關(guān)卡時(shí)保持不變,如全局的游戲配置、游戲狀態(tài)等。

1.1 游戲?qū)嵗?GameInstance

1.1.1 介紹

UGameInstance:游戲?qū)嵗?,它?fù)責(zé)保存和共享游戲的全局?jǐn)?shù)據(jù)和狀態(tài)。可以在項(xiàng)目中創(chuàng)建自定義的UGameInstance子類(lèi),通過(guò)GetGameInstance函數(shù)獲取當(dāng)前的游戲?qū)嵗?,并使用其中的變量?lái)存儲(chǔ)和訪問(wèn)全局?jǐn)?shù)據(jù)。

GameInstance是UE4中的全局類(lèi),只有一個(gè)實(shí)例(就像是單例設(shè)計(jì)模式,只有一個(gè)對(duì)象)

GameInstance常用的函數(shù)與用法

  • Event Init(事件初始)與 Event Shutdown(事件關(guān)閉),引擎初始化與關(guān)閉時(shí)執(zhí)行的邏輯。
    UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器

  • 為游戲保存全局?jǐn)?shù)據(jù):比如上一個(gè)關(guān)卡的信息需要在下一個(gè)關(guān)卡使用時(shí);只是臨時(shí)數(shù)據(jù),游戲結(jié)束則消失;則可以將這些臨時(shí)數(shù)據(jù)保存在GameInstance中。(假如需要持久保存數(shù)據(jù)需要用SaveGame,也就是將數(shù)據(jù)存儲(chǔ)到磁盤(pán)中)

1.1.2 使用 GameInstance

  1. 首先新建藍(lán)圖類(lèi)繼承 GameInstance 基類(lèi)
    UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器
  2. 在項(xiàng)目設(shè)置中配置游戲?qū)嵗?lèi)為我們剛才新建的游戲?qū)嵗?lèi)即可。(不配置的話游戲運(yùn)行還是使用的默認(rèn)的類(lèi))
    UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器
  3. 在其他藍(lán)圖類(lèi)中獲取游戲?qū)嵗龑?duì)象
    UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器

深入思考:通過(guò)獲取游戲?qū)嵗玫降钠鋵?shí)是父類(lèi)的指針(應(yīng)該是父類(lèi)指針指向子類(lèi)對(duì)象),但是使用父類(lèi)指針是訪問(wèn)不了子類(lèi)中特有的函數(shù)的,所以就需要進(jìn)行類(lèi)型轉(zhuǎn)換(UE的類(lèi)型轉(zhuǎn)換在C++中對(duì)應(yīng)的就是static_cast、dynamic_cast等類(lèi)型轉(zhuǎn)換函數(shù))。
這是一種抽象編程的思想,假如【獲取游戲?qū)嵗亢瘮?shù)獲取的不是父類(lèi)指針,而是直接獲取對(duì)應(yīng)的子類(lèi)指針,而且我們也不知道未來(lái)會(huì)有多少子類(lèi)被定義。不能新定義一個(gè)子類(lèi),我們就去修改【獲取游戲?qū)嵗亢瘮?shù)的源碼,很顯然這種程序設(shè)計(jì)思想太垃圾了。

1.2 玩家控制器 PlayerController

玩家控制器 和 GameInstance 使用方法很類(lèi)似
它也可以通過(guò)【獲取玩家控制器】函數(shù)獲取父類(lèi)指針,然后類(lèi)型轉(zhuǎn)換為子類(lèi)類(lèi)型之后就可以使用功能。

使用步驟:

  1. 新建一個(gè)子類(lèi)派生于 PlayerController
    UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器
  2. 設(shè)置【項(xiàng)目設(shè)置中】選擇新建的玩家控制器類(lèi)(首先得新建一個(gè)游戲模式的子類(lèi),才能選擇玩家控制器類(lèi))
    UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器
  3. 使用
    UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解,UE,ue4,游戲,ue5,C++,全局變量,游戲?qū)嵗?玩家控制器

1.3 游戲世界類(lèi) UWorld

在UE4中,UWorld是一個(gè)重要的類(lèi),代表了游戲世界的實(shí)例。它是一個(gè)容器,用于存儲(chǔ)和管理游戲中所有的Actors(角色)和Objects(對(duì)象),并負(fù)責(zé)協(xié)調(diào)它們之間的交互和邏輯。

這部分內(nèi)容了解的還不多,挖個(gè)坑,等學(xué)習(xí)熟練之后再將這部分內(nèi)容補(bǔ)全。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-739861.html

到了這里,關(guān)于UE4 中可全局獲取的變量(例如游戲?qū)嵗?、玩家控制器等?詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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)文章

  • UE4 無(wú)用の小技巧之聯(lián)機(jī)游戲獲取自身控制器

    UE4 無(wú)用の小技巧之聯(lián)機(jī)游戲獲取自身控制器

    文章內(nèi)容僅為個(gè)人學(xué)習(xí)所得,如有錯(cuò)誤,還請(qǐng)指正!謝謝 通常在UE4中獲取玩家控制器是使用GetPlayerController,但在聯(lián)機(jī)游戲中,想要獲取玩家所擁有的控制器時(shí),常規(guī)的GetPlayerController所獲取的控制器只在服務(wù)端是正確的,因?yàn)樵诼?lián)機(jī)模式下,玩家的PlayerIndex是不一致的 在Paw

    2024年02月12日
    瀏覽(86)
  • UE4 限制玩家攝像機(jī)視角旋轉(zhuǎn)角度

    UE4 限制玩家攝像機(jī)視角旋轉(zhuǎn)角度

    功能 :玩家可以用鼠標(biāo)旋轉(zhuǎn)視角觀察角色,但限制旋轉(zhuǎn)的角度 網(wǎng)上找了很多沒(méi)找到,于是自己實(shí)現(xiàn)了一種方式 先在彈簧臂組件里勾上使用pawn控制旋轉(zhuǎn),這樣相機(jī)的旋轉(zhuǎn)就跟玩家控制器綁定了,所以重點(diǎn)在于如何對(duì)玩家控制器進(jìn)行限制 如果不加旋轉(zhuǎn)限制的話是這樣子 可以發(fā)

    2024年02月12日
    瀏覽(105)
  • UE4動(dòng)作游戲?qū)嵗齊PG Action解析一:角色移動(dòng),旋轉(zhuǎn),動(dòng)畫(huà)創(chuàng)建,創(chuàng)建武器,及武器配置

    UE4動(dòng)作游戲?qū)嵗齊PG Action解析一:角色移動(dòng),旋轉(zhuǎn),動(dòng)畫(huà)創(chuàng)建,創(chuàng)建武器,及武器配置

    1.1、官方RPGAction Demo下載地址: ? 1.2、在場(chǎng)景中創(chuàng)建一個(gè)空的角色 創(chuàng)建一個(gè)Character藍(lán)圖和一個(gè)PlayerController藍(lán)圖,添加彈簧臂組件和攝像機(jī),并為網(wǎng)格體添加上一個(gè)骨骼網(wǎng)格體 ? 1.3、如何讓這個(gè)角色出現(xiàn)在場(chǎng)景中, 創(chuàng)建一個(gè)GameMode藍(lán)圖,把默認(rèn)Pawn類(lèi)設(shè)置成我們創(chuàng)建的角色,

    2024年02月03日
    瀏覽(110)
  • UE4樣條線移動(dòng),玩家只需要控制旋轉(zhuǎn)

    UE4樣條線移動(dòng),玩家只需要控制旋轉(zhuǎn)

    1.創(chuàng)建Actor并命名為“A_Spline” 2.創(chuàng)建Pawn并命名為“P1” 3以上創(chuàng)建的藍(lán)圖類(lèi)可以使用自己的命名?。。。?! 第二步:給P1寫(xiě)上藍(lán)圖 1.我們首先給P1寫(xiě)藍(lán)圖 2.在輸入映射中設(shè)置一個(gè)事件Yaw 3.為鼠標(biāo)的X軸,數(shù)值為1 4.如圖寫(xiě)上剛剛設(shè)置的輸入事件 第三步:給A_Spline寫(xiě)上藍(lán)圖 1.添加一

    2023年04月09日
    瀏覽(89)
  • UE4動(dòng)作游戲?qū)嵗齊PG Action解析三:實(shí)現(xiàn)效果,三連擊Combo,射線檢測(cè),顯示血條,火球術(shù)

    UE4動(dòng)作游戲?qū)嵗齊PG Action解析三:實(shí)現(xiàn)效果,三連擊Combo,射線檢測(cè),顯示血條,火球術(shù)

    實(shí)現(xiàn)武器三連擊,要求: 1.下一段Combo可以隨機(jī)選擇, 2.在一定的時(shí)機(jī)才能再次檢測(cè)輸入 3. 等當(dāng)前片段播放完才播放下一片段 1.1、蒙太奇設(shè)置 通過(guò)右鍵-新建蒙太奇片段,在蒙太奇里創(chuàng)建三個(gè)片段,并且移除相關(guān)連接,這樣默認(rèn)只會(huì)播放第一個(gè)片段 不同片段播放動(dòng)畫(huà)從 資產(chǎn)

    2024年02月21日
    瀏覽(117)
  • [UE4][C++]調(diào)整分屏模式下(本地多玩家)視口的顯示位置和區(qū)域

    [UE4][C++]調(diào)整分屏模式下(本地多玩家)視口的顯示位置和區(qū)域

    ? ? ? ? ? 在UE4中,多個(gè)玩家共用一個(gè)顯示器就可以啟用分屏模式,按玩家人數(shù)(最大四人)將屏幕均勻分割,顯示不同玩家的視角,開(kāi)發(fā)者可以在編輯器里設(shè)置分割類(lèi)型(水平或者垂直),這個(gè)分割是采用UV坐標(biāo)的方式。 (進(jìn)入項(xiàng)目設(shè)置--項(xiàng)目--地圖和模式--本地多人) 調(diào)整

    2024年02月15日
    瀏覽(89)
  • 在UE4虛幻引擎中加入導(dǎo)航網(wǎng)格體邊界體積后喪尸不能移動(dòng)和發(fā)現(xiàn)玩家

    在UE4虛幻引擎中加入導(dǎo)航網(wǎng)格體邊界體積后喪尸不能移動(dòng)和發(fā)現(xiàn)玩家

    最近使用ue4做第一人稱(chēng)視角射擊游戲發(fā)現(xiàn)問(wèn)題,加入導(dǎo)航網(wǎng)格體邊界體積后喪尸不能移動(dòng)和發(fā)現(xiàn)玩家。下圖是出現(xiàn)的問(wèn)題圖片 1.行為樹(shù):控制并顯示AI的決策制定過(guò)程 2.黑板:可以看做是行為樹(shù)的創(chuàng)建一些公有變量,外部可以修改行為樹(shù)黑板的變量值,達(dá)到修改行為樹(shù)狀態(tài)的

    2024年02月05日
    瀏覽(382)
  • UE 如何保存全局變量

    UE 如何保存全局變量

    ? ? ? ? 游戲過(guò)程中我們經(jīng)常需要保存一些全局變量,如玩家的總得分、當(dāng)前生命值等等,在我們切換關(guān)卡之后它們的數(shù)值保持不變。在UE中主要使用SaveGame類(lèi)對(duì)象和GameInstance對(duì)象。 ? ? ? ? 首先,點(diǎn)擊右鍵創(chuàng)建藍(lán)圖類(lèi),輸入save創(chuàng)建SaveGame藍(lán)圖類(lèi)對(duì)象,命名為MySaveGame;輸入

    2024年02月13日
    瀏覽(92)
  • UE4藍(lán)圖基礎(chǔ)04-變量和數(shù)組

    UE4藍(lán)圖基礎(chǔ)04-變量和數(shù)組

    所謂變量,就是保存了各種值的“器皿”,它可以存放一個(gè)值或引用世界中的一個(gè)Object或Actor的屬性。在編程中,會(huì)根據(jù)需要將各種計(jì)算的結(jié)果或部件的設(shè)定值等,拿來(lái)進(jìn)行處理操作。為此,需要事先將必要的值保存在某個(gè)地方,這就是變量的作用。 變量也有類(lèi)型之分,創(chuàng)建

    2024年02月06日
    瀏覽(96)
  • UE4游戲保存

    UE4游戲保存

    在游戲運(yùn)行過(guò)程中由于某些事情需要暫停一下游戲,那就需要把游戲當(dāng)前的進(jìn)度保存起來(lái),下次打開(kāi)的時(shí)候還可以再次玩,我們這里主要保存的就是。所有需要有一個(gè)游戲保存的機(jī)制。UE4提供了這樣的機(jī)制。 首先新建一個(gè)類(lèi)繼承在SaveGame,命名為FirstSaveGame 打開(kāi)VS2019編輯代碼

    2024年02月12日
    瀏覽(133)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包