FText 要如何使用

[复制链接]
查看2380 | 回复4 | 2019-3-23 17:27:12 | 显示全部楼层 |阅读模式
本帖最后由 cow1330 于 2019-3-23 17:42 编辑

小弟正試著物品的設定,之前是FString是是沒問題,但改用 FText 就會出錯
可以請教一下 FText 要如何使用


    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ItemsData")
        FText Description;


嚴重性    程式碼    說明    專案    檔案    行    隱藏項目狀態
錯誤    C2440    '正在初始化': 無法由 'FText' 轉換為 'FString'    ActGame    C:\Users\user\Documents\Unreal Projects\ActGame\Source\ActGame\Private\Items\ItemsBase.cpp    24   


-------------------------------------------------------


小弟有試著添加這個語法,也是不行

FItemsDataTable::FItemsDataTable()
{
    this->Description = FText::FromString("No Description");
}

rrfetch | 2019-3-24 01:35:24 | 显示全部楼层
这个地方就应该用 FString。按我的理解,FString 是真的存储有字符串,而 FText 存储的是字符串的编号。这二个可以用一定的方法来转换,但没有必要。该用 FString 的地方,你用 FText 也节省不了资源
回复 支持 反对

使用道具 举报

cow1330 | 2019-3-24 09:23:22 | 显示全部楼层
本帖最后由 cow1330 于 2019-3-24 09:26 编辑

小弟是參考這個範例的

https://github.com/Heite92/UE4_I ... ory/InventoryItem.h

上面的物品 name 和 Description就用 FText,我照抄也是錯,也不知是作麼回事

但我稍微了解一下 FText 跟本地化有關 (應該是把FText的文字轉成設定好的語言文字吧?)
所以想學習 一下,看是為什麼會錯
回复 支持 反对

使用道具 举报

rrfetch | 2019-3-24 19:22:12 | 显示全部楼层
我在电脑上尝试了一下,是可以的。
我感觉你的 C++ 语法是不是有点问题。一般我们写
Description = FText::FromString(TEXT("No Description"));
另外前面我说 FText 只存储字符串编号,可能是记错了,应该是 FName 只存储编号。
回复 支持 反对

使用道具 举报

cow1330 | 2019-3-25 10:09:41 | 显示全部楼层
本帖最后由 cow1330 于 2019-3-25 10:22 编辑

我試了還是不行,我猜可能是版本的問題吧,我的是4.16.3版的,
如果讀的沒錯的話,範例應該是4.18版,可能之後有修正吧
個人電腦太老舊了,4.17版本以上會出問題,要再一段時間才會升級



C++ 其實小弟也還在學,至於為啥要加 this->
也是看範例抄下的,小弟也不太清楚上面為啥要加這個語法
反正想說先先抄下來,再來試看看,但小弟測試過之後
感覺有加沒加好像也沒差
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

36

主题

77

回帖

256

积分

初阶编码师

积分
256