虛幻4 文檔翻譯 Casting節點

最近在學習虛幻4的藍圖系統,藍圖就是可視化編程。從某種意義上說,可以把藍圖理解成一種“編程語言”,而每個藍圖就是一個可執行的腳本。這樣來理解的話,什麼藍圖繼承、類藍圖、藍圖接口等就十分簡單了。藍圖作爲一種”編程語言“,自然有許多自己的特性,變量、函數的定義,流程的控制等等,這些概念並不難理解。

casting節點是藍圖裏一個有趣的節點,最近頻繁用到,但是都不太完全理解,索性今天看了一下官方文檔,突然豁然開朗,一下子明白了許多。爲了加深理解,特意把casting這頁(https://docs.unrealengine.com/latest/INT/Engine/Blueprints/UserGuide/CastNodes/index.html)翻譯了下,放在這裏吧。

Casting——類型轉換
本頁一共包括:
1. cast的使用情形
2. cast使用的一個例子
3. cast(類型轉換爲)爲目標藍圖
4. 其他類型的casting

當在藍圖裏使用cast to 節點時,簡單地說,你是想檢測這個你要進行類型轉換(cast)的物體是否是你想要轉換成的類型。或者說,你現在寫了一個特殊的character類藍圖(就叫做MyCharacter吧),並且在裏面定義了一些變量、函數,聲明瞭這個藍圖爲默認的pawn 類藍圖。
如果你想從其他藍圖裏獲得player character的屬性,你可以使用Get Player Character節點,然後使用通常的做法去設置、獲得它的座標、旋轉。但是,你不能得到你剛剛在MyCharacter裏定義的屬性和函數,因爲這個藍圖僅僅是player character類,而不是MyCharacte類。
通過使用 Get Player Character 節點,然後使用 Cast To MyCharacter節點,你就能夠這樣進行邏輯編寫:如果 Player Character是MyCharacter,那麼我要獲得它的變量、函數,事件等等。

cast的使用情形
下面是幾個可以使用藍圖cast節點的情形
1. 在關卡中,你的角色和某個actor互動,並且造成了你的角色發生了一些變化。
比如,角色撿到了寶貝,使自己的血量增加了。
比如,敵人走在雪中或者泥地,造成他們的移動速度變慢。
(這裏就需要cast一下和角色互動的到底是不是雪中、泥地、寶貝等)
2. 你想把變量傳遞給hud或者你的ui控件,保存遊戲,控制或者遊戲模式。
比如,從Character藍圖傳遞玩家或者敵人的血量到HUD假面或者別的空間藍圖。
3. 你有大量的子藍圖,你希望獲得某個子藍圖。
你建立了貓,狗,鳥藍圖,它們繼承了動物藍圖,擁有它的定義函數。將動物藍圖類型轉化爲(Cast to)鳥藍圖,然後執行飛行函數。
4. 你的某個藍圖依賴於其他藍圖的變量、事件、函數。
將電池插入手電筒會讓手電筒發光,而這個取決於電池的電量。
5. 你想獲得大量的同類藍圖,一次性的對它們做出應用。
在關卡中,你放置了許多燈泡,你想當某個事件發生時將他們全部打開或關閉。

cast使用的一個例子
這部分參考原文吧,不是太難理解。

cast(類型轉換爲)爲目標藍圖
有些時候,爲了獲得某個變量你可以將這個變量轉換爲(Cast to)特定的藍圖類型。
這裏寫圖片描述
在上圖中,1部分創造了一個 Save Game Object物體,並且聲明爲SaveGameObject類型變量,然後將這個物體cast to爲 MySaveGame 類藍圖。
2部分和上面的過程一樣。

其他類型的casting
有一些特殊的函數可以用來(將某個變量)Cast to不同類型的藍圖。

發佈了23 篇原創文章 · 獲贊 68 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章