最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

UE4 StringTable和EnumName的兩三事

2023-02-22 19:23 作者:末日時(shí)你吃了嗎  | 我要投稿

如何將某個(gè)枚舉的所有成員作為Key批量添加至特定StringTable中
↑↑↑? 本文內(nèi)容??↑↑↑

順便提了一嘴EnumName相關(guān)的事情。
話說(shuō)我這一下午都在干什么呀……


前置:

StringTable最常用的 藍(lán)圖API是 GetStringTableEntrySourceString,通過(guò)傳入ID和Key,來(lái)查找對(duì)應(yīng)的Source(即Value)。其中ID即為其右鍵CopyReference后,去掉文件類(lèi)型說(shuō)明后的路徑。如:

以Game/Blueprint下的ST_Demo為例,右鍵復(fù)制引用得到的路徑為:

StringTable'/Game/Blueprint/ST_Demo.ST_Demo'

則其ID為 /Game/Blueprint/ST_Demo.ST_Demo。


其實(shí)我完全無(wú)法理解為什么它不給一個(gè)直接傳資源引用的方法……如代碼所示:

效果圖


一、StringTable相關(guān)API

為指定StringTable添加鍵值對(duì):

清空鍵值對(duì)的方法:


在此基礎(chǔ)上,我們有了為StringTable添加新行的庫(kù)方法:

通過(guò)該方法,我們其實(shí)已經(jīng)可以實(shí)現(xiàn),在藍(lán)圖中使用代碼去添加的效果。就是這么簡(jiǎn)單。



二、枚舉相關(guān)


首先我們使用StaticEnum獲取枚舉對(duì)象。


A、獲取枚舉的成員數(shù)量 (長(zhǎng)度)??


其他的,在枚舉的末端添加一個(gè)Last 成員,也是比較常用的方法。而此時(shí)枚舉的長(zhǎng)度便是:


B、獲取枚舉的名稱

枚舉有三種名稱,分別是ShortName、DisplayName以及FullName。

以EMyEnum中的Value1為例。


① ShortName

短稱?即為成員名稱?"Value1",它的獲取方式為:


② DisplayName

展示名稱?為"值1",它的獲取方法是:

藍(lán)圖中我們可以通過(guò)直接通過(guò)ToString?得到它的DisplayName。

注:原則上 DisplayName是不應(yīng)該使用中文字符的。但我就是要用。


③ FullName / EnumName

全稱?為"EMyEnum::Value1",它的獲取方式為:

藍(lán)圖中我們可以先將它轉(zhuǎn)換為FName,再轉(zhuǎn)化為String得到FullName。



最終方法

在此基礎(chǔ)上我們有了將枚舉批量加入StringTable的方法:

比較遺憾的是template無(wú)法通過(guò)UFunction向上暴露,因此對(duì)于C++枚舉類(lèi)來(lái)說(shuō),我們只能通過(guò)多次載入Template 函數(shù)的方式為它們每個(gè)單獨(dú)寫(xiě)一個(gè)方法。

比較神奇的是如果我們可以向上暴露一個(gè)UEnum*,此時(shí)所有藍(lán)圖定義的枚舉類(lèi),都可以直接被我們選擇。




UE4 StringTable和EnumName的兩三事的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
临猗县| 沅江市| 临泽县| 通江县| 洛南县| 高陵县| 泸西县| 孟州市| 中牟县| 佳木斯市| 普安县| 曲阳县| 周至县| 林周县| 福清市| 东乡| 南川市| 华池县| 盐山县| 阿瓦提县| 旅游| 绍兴市| 全州县| 马边| 安远县| 博客| 莆田市| 平潭县| 霍林郭勒市| 固原市| 金塔县| 金乡县| 无为县| 曲阜市| 台东市| 永济市| 安乡县| 黄龙县| 玉龙| 甘洛县| 万州区|