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

UE學(xué)習(xí)筆記--如何區(qū)分FString、FName、FText,以及使用場(chǎng)景

這篇具有很好參考價(jià)值的文章主要介紹了UE學(xué)習(xí)筆記--如何區(qū)分FString、FName、FText,以及使用場(chǎng)景。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

最近在學(xué)習(xí) UE,發(fā)現(xiàn) UE 基本沒有用到 std::string,基本使用的是FString、FName、FText。去網(wǎng)絡(luò)上查了些資料并且學(xué)習(xí)了下,在這里做個(gè)簡(jiǎn)單介紹和總結(jié)。為什么需要三種字符串呢?主要是因?yàn)樗麄內(nèi)加凶约荷瞄L(zhǎng)的場(chǎng)景。

FString

FString 是 的縮寫Fixed String,是虛幻引擎中使用的動(dòng)態(tài)字符串類型。它類似于標(biāo)準(zhǔn) C++ 字符串 (std::string),是處理文本的最靈活的選項(xiàng)。以下是 FString 用法的一些主要功能和示例

  1. 動(dòng)態(tài)和可變:可以在創(chuàng)建 FString 后更改其內(nèi)容。
FString MyString = "Hello, ";
MyString += "Unreal Engine!";
  1. 文本操作和格式化的理想選擇:FString 非常適合在運(yùn)行時(shí)連接、操作和格式化文本。
FString PlayerName = "John";
FString Greeting = FString::Printf(TEXT("Hello, %s!"), *PlayerName);
  1. 性能考慮因素:由于 FString 的動(dòng)態(tài)特性,與 FName 和 Text 相比,F(xiàn)String 的性能開銷較小。避免在性能關(guān)鍵型代碼中過度使用。

FName

  1. FName 是 的縮寫Fixed Name,是虛幻引擎中更專業(yè)的數(shù)據(jù)類型。它主要用于存儲(chǔ)和引用名稱,例如對(duì)象名稱、屬性名稱和資產(chǎn)名稱。FName不區(qū)分大小寫,為便于快速定位某個(gè)資源。FName當(dāng)創(chuàng)建時(shí),會(huì)根據(jù)字符串內(nèi)容計(jì)算出一個(gè)Hash值,這樣實(shí)現(xiàn)比較邏輯的時(shí)候不用比較字符串內(nèi)容,而是直接比較hash值是否相等,就是O(1).

注意:FName 不區(qū)分大小寫

  1. 高效的內(nèi)存使用:FName使用全局名稱表,可以減少多次存儲(chǔ)相同名稱時(shí)的內(nèi)存開銷。
    在此示例中,F(xiàn)irstname 和 SecondName 都引用全局名稱表中的相同條目,從而節(jié)省內(nèi)存。
FName Firstname = FName(TEXT("John"));
FName SecondName = FName(TEXT("John"));
  1. 不適合動(dòng)態(tài)文本:FName 是不可變的,不適合動(dòng)態(tài)文本操作。為此,請(qǐng)使用 FString 或 Text。

FText

  1. 文本是虛幻引擎中另一種與文本相關(guān)的數(shù)據(jù)類型,對(duì)于本地化和以人類可讀的格式維護(hù)文本特別有用。以下是文本的一些關(guān)鍵特征和用例:
    本地化支持:文本支持本地化,可以更輕松地管理游戲中的多種語(yǔ)言和翻譯。
FText MyLocalizedText = NSLOCTEXT("MyNamespace", "MyKey", "Hello World!");
  1. 不可變且安全:與 FName 一樣,Text 是不可變的,這確保文本在運(yùn)行時(shí)保持一致且不變。
  2. 適用于面向用戶的文本:使用文本來顯示用戶界面、對(duì)話或玩家可見的任何文本。
UTextBlock* TextElement = ...;
TextElement->SetText(MyLocalizedText);
  1. 內(nèi)存開銷稍多:由于其本地化支持,Text 的內(nèi)存開銷比 FName 稍高,但它仍然比 FString 更節(jié)省內(nèi)存。

FString、FName 和 Text 之間的區(qū)別

可變性
  • FString:可變且動(dòng)態(tài)。創(chuàng)建后您可以更改其內(nèi)容。
  • FName:不可變。一旦創(chuàng)建,就無法修改。
  • FText:不可變。文本對(duì)象在創(chuàng)建后也無法更改。
內(nèi)存開銷
  • FString:由于其動(dòng)態(tài)特性,內(nèi)存開銷略高。
  • FName:內(nèi)存開銷低,因?yàn)樗褂萌置Q表來減少冗余。
  • FText:與 FName 相比,內(nèi)存開銷略高,主要是由于本地化支持。
用例
  • FString:非常適合動(dòng)態(tài)文本操作、格式化以及文本內(nèi)容在運(yùn)行時(shí)可能發(fā)生變化的任何情況。
  • FName:最適合存儲(chǔ)和引用名稱,特別是對(duì)象、屬性和資產(chǎn)的名稱。不適合動(dòng)態(tài)文本。
  • FText:專為面向用戶的文本、本地化和維護(hù)人類可讀的文本而設(shè)計(jì)。非常適合在需要本地化的用戶界面、對(duì)話和游戲內(nèi)容中顯示的文本。
表現(xiàn)
  • FString:具有與動(dòng)態(tài)內(nèi)存分配和釋放相關(guān)的性能成本。在性能關(guān)鍵的代碼中明智地使用它。
  • FName:由于其低內(nèi)存開銷和高效的名稱查找,提供出色的性能。
  • FText:在用戶界面元素和本地化方面表現(xiàn)良好。雖然與 FName 相比它有一些額外的開銷,但對(duì)于大多數(shù)情況來說它仍然是一個(gè)有效的選擇。
本地化支持
  • FString:沒有內(nèi)置的本地化支持。應(yīng)手動(dòng)管理文本以進(jìn)行本地化。
  • FName:沒有內(nèi)置的本地化支持;通常用于內(nèi)部參考而不是面向用戶的文本。
  • FText:設(shè)計(jì)時(shí)考慮到本地化,使其成為管理跨不同語(yǔ)言的文本的有力選擇。

結(jié)論

了解虛幻引擎中 FString、FName 和 Text 之間的差異對(duì)于高效的游戲開發(fā)至關(guān)重要。每種數(shù)據(jù)類型都有其獨(dú)特的優(yōu)點(diǎn)和缺點(diǎn),使其適合特定的用例??偨Y(jié)一下:

使用 FString 進(jìn)行動(dòng)態(tài)文本操作和格式化。使用 FName 有效存儲(chǔ)名稱以及對(duì)資產(chǎn)或?qū)ο蟮囊?。使用文本以?biāo)準(zhǔn)化方式進(jìn)行面向用戶的文本、本地化和維護(hù)人類可讀的文本。通過為作業(yè)選擇正確的數(shù)據(jù)類型,您可以優(yōu)化內(nèi)存使用并提高虛幻引擎項(xiàng)目的整體性能和可維護(hù)性。

參考鏈接

虛幻中的 FSTRING、FNAME 與 TEXT文章來源地址http://www.zghlxwxcb.cn/news/detail-810149.html

到了這里,關(guān)于UE學(xué)習(xí)筆記--如何區(qū)分FString、FName、FText,以及使用場(chǎng)景的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 【機(jī)器學(xué)習(xí)300問】63、如何區(qū)分二分類、多分類和多標(biāo)簽分類?

    ????????在機(jī)器學(xué)習(xí)中,分類是指根據(jù)一系列特征將實(shí)例數(shù)據(jù)劃分到預(yù)先定義的類別或者標(biāo)簽的監(jiān)督學(xué)習(xí)任務(wù)。分類任務(wù)按照類別數(shù)量區(qū)分,可以細(xì)分為: ? ? ? ? 二分類 只有兩個(gè)類別的分類,例如判斷郵件是否為垃圾郵件。 ???????假設(shè)我們有一組電影評(píng)論數(shù)據(jù)集,

    2024年04月17日
    瀏覽(23)
  • 【UE】UE5 學(xué)習(xí)筆記

    【UE】UE5 學(xué)習(xí)筆記

    快捷鍵 快捷鍵 描述 F 定位關(guān)一卡對(duì)象:雙擊游戲?qū)ο竺只蜻x游戲?qū)ο竺?鼠標(biāo)中鍵 移動(dòng)視野 alt+鼠標(biāo)左鍵移 旋轉(zhuǎn)視野 滑動(dòng)鼠標(biāo)滾輪 縮放視野 alt+鼠標(biāo)右鍵拖動(dòng)鼠標(biāo) 縮放視野 鼠標(biāo)左鍵移動(dòng)鼠標(biāo) 前后漫游 WASD+鼠標(biāo)右鍵 自由漫游 漫游時(shí)滑動(dòng)鼠標(biāo)滾輪 調(diào)節(jié)漫游速度 選中要克隆

    2023年04月14日
    瀏覽(88)
  • 學(xué)習(xí)筆記——在IDEA中如何上傳git以及git分支的拉取和提交

    學(xué)習(xí)筆記——在IDEA中如何上傳git以及git分支的拉取和提交

    1.點(diǎn)加號(hào)--新建倉(cāng)庫(kù) 2.輸入倉(cāng)庫(kù)名稱即可 3.創(chuàng)建完成 將地址復(fù)制,下面要用 將項(xiàng)目上傳到遠(yuǎn)程倉(cāng)庫(kù) 1.idea綁定git 2.創(chuàng)建本地庫(kù) VCS--Create Git Repository...--OK ? 此時(shí)項(xiàng)目文件名變紅 ,說明Git已檢測(cè)到項(xiàng)目,但沒有進(jìn)行追蹤, 3.IDEA添加遠(yuǎn)程倉(cāng)庫(kù) Git--Manage Remotes... 在彈出框中添加路徑

    2024年02月04日
    瀏覽(86)
  • UE5.1保姆級(jí)創(chuàng)建第三方插件庫(kù)使用DLL,以及踩坑筆記

    UE5.1保姆級(jí)創(chuàng)建第三方插件庫(kù)使用DLL,以及踩坑筆記

    完全沒接觸過C++的插件和DLL,因?yàn)镸ediaPipe需要自己創(chuàng)建插件并編譯DLL庫(kù),所以把該踩的坑都踩了一遍,幾天終于把DLL加載給弄明白了.創(chuàng)作不易,還請(qǐng)點(diǎn)個(gè)贊! 參考資料: 封裝自己的項(xiàng)目為dll給其他用戶使用_嗶哩嗶哩_bilibili 【UE5】UE項(xiàng)目中靜態(tài)庫(kù)還沒整明白吧,動(dòng)態(tài)鏈接庫(kù)又來了_嗶

    2023年04月21日
    瀏覽(96)
  • UE4 材質(zhì)學(xué)習(xí)筆記

    UE4 材質(zhì)學(xué)習(xí)筆記

    CheapContrast與CheapContrast_RGB都是提升對(duì)比度的,一個(gè)是一維輸入,一個(gè)是三維輸入,讓亮的地方更亮,暗的地方更暗,不像power雖然也是提升對(duì)比度,但是使用過后的結(jié)果都是變暗或者最多不變(值為1的情況) 乘法乘以超過1不會(huì)為純白色,而加法超過一,材質(zhì)就呈現(xiàn)白色,乘

    2024年02月11日
    瀏覽(18)
  • UE4 頂點(diǎn)著色 學(xué)習(xí)筆記

    UE4 頂點(diǎn)著色 學(xué)習(xí)筆記

    首先區(qū)別一下StaticMesh和StaticMeshComponent StaticMesh是模型本身 而StaticMeshComponent是模型出來的實(shí)例 直接修改StaticMesh的內(nèi)容,所有StaticMeshComponent實(shí)例都會(huì)產(chǎn)生變化 而修改StaticMeshComponent直會(huì)對(duì)實(shí)例產(chǎn)生影響不會(huì)對(duì)StaticMesh有任何修改 函數(shù)參數(shù) 1、要修改頂點(diǎn)著色的StaticMeshCommponent

    2024年02月04日
    瀏覽(23)
  • UE4 unlua學(xué)習(xí)筆記

    UE4 unlua學(xué)習(xí)筆記

    將這三個(gè)插件放入Plugins內(nèi)并重新編譯 ? 創(chuàng)建一個(gè)BlueprintLibrary,聲明一個(gè)全局函數(shù)? 在這里聲明路徑 點(diǎn)擊Create Lua Template ? 在Content的Script即可生成對(duì)應(yīng)的lua文件打開它!? 顯示以上lua代碼 打印Hello Unlua 創(chuàng)建該UI,就會(huì)在創(chuàng)建UI的Construct里面進(jìn)行打印Hello Unlua效果如下: ? 靜態(tài)

    2024年02月15日
    瀏覽(18)
  • UE4 HLSL學(xué)習(xí)筆記

    UE4 HLSL學(xué)習(xí)筆記

    在Custom配置對(duì)應(yīng)ush文件路徑 在HLSL中寫入對(duì)應(yīng)代碼 Custom里面增加兩個(gè)Input,名字必須和ush文件內(nèi)的未知變量名字一樣 然后就對(duì)應(yīng)輸出對(duì)應(yīng)效果的顏色 這就是簡(jiǎn)單的加法運(yùn)算 減法同理: 乘法除法同理 HLSL取最小值 HLSL取最大值 絕對(duì)值: 取余: 四舍五入 Pow運(yùn)算: 材質(zhì)里面是

    2024年02月06日
    瀏覽(17)
  • 阿趙UE學(xué)習(xí)筆記——11、地形系統(tǒng)

    阿趙UE學(xué)習(xí)筆記——11、地形系統(tǒng)

    阿趙UE學(xué)習(xí)筆記目錄 ??大家好,我是阿趙。 ??繼續(xù)學(xué)習(xí)虛幻引擎的用法,這次來學(xué)習(xí)一下虛幻引擎的地形系統(tǒng)的用法。 ??在選項(xiàng)模式里面,選擇地形: ??進(jìn)入到地形界面之后,需要先創(chuàng)建一個(gè)地形: ??留意看看創(chuàng)建地形時(shí)候的參數(shù),這個(gè)很重要: ??把默認(rèn)的

    2024年01月19日
    瀏覽(18)
  • UE5學(xué)習(xí)筆記(1)——從源碼開始編譯安裝UE5

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

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

    2024年02月08日
    瀏覽(103)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包