UE4藍圖:創建和使用結構體

如果我們想在藍圖中創建一個類,或者一個對象來作爲一個整體,保存一些,一系列的屬性,而只是單純的修改和獲取它的值,那麼這就是結構體Struct.

那麼在藍圖中怎麼去創建一個結構體類型呢?當我們創建一個變量後,可以在類型列表中找到Structure列表,這些都是藍圖中爲我們提供的一些結構體類型.

這裏寫圖片描述

我們可以隨便選一個結構體類型,最熟悉的應該就是Transfrom結構體了把.那麼我們如何去看這個結構體的內部變量呢?

這裏寫圖片描述

這裏涉及到一個有關結構體類型最重要的節點,打破結構體,就可以獲得結構體的變量.Transfrom的結構體有三個變量,分別是Location,Rotation,Scale.位置.方向.規模三個屬性.

這裏寫圖片描述

現在我們來創建一個自定義的結構體.讓我們回到主界面,在內容空白處右鍵,點擊Blueprints下的Structure按鈕.

這裏寫圖片描述

然後更改這個struct的命名.這個名字就作爲你自定義的結構體的名字.

這裏寫圖片描述

雙擊點開你所創建的結構體.然後可以看到,我給這個結構體設置了兩個變量,且在下面爲這兩個變量設置了默認值.id的默認值是0,name的默認值是NULL.修改完之後,別忘記Save保存.

這裏寫圖片描述

然後回到關卡藍圖中.創建一個變量,然後設置它的類型爲,我們剛創建的類型.MyStruct.記得Compile,否則無法跳出來默認值.

這裏寫圖片描述

在創建結構體變量的時候,我們可以給變量重新設置初始值,然後拖動到事件圖表中去Get.獲得此變量.然後打破這個結構體.可以獲得它內部的變量.

這裏寫圖片描述

我們可以通過Make Listeral String節點構造一個字符串.然後通過Append節點把字符串連接起來,創建一個自定義的字符串.然後輸出.

這裏寫圖片描述

編譯後執行,可以看到我們成功輸出了這個結構體的內部變量值.

這裏寫圖片描述

之前我們只是單純的讀取了結構體變量的內部變量的值.下面我們來在執行過程中去修改結構體變量的值.我們從變量欄中拖出來這個結構體變量,然後選擇Set菜單項.然後在事件圖表中右鍵輸入make my,因爲之前我創建的結構體命名爲MyStruct.通過Make節點去定義了一個臨時的結構體變量.然後用這個結構體變量去更改整個結構體變量.

這裏寫圖片描述

這裏寫圖片描述

但是這樣卻是有一個問題.因爲結構體中,我們只是想單純的修改一個變量,那麼其他的變量該怎麼辦呢?難道獲得結構體變量,然後打破結構體,一個個的連接起來嗎?下圖中,我們只是想單純的修改id,保留name值.

這裏寫圖片描述

但是結構體中的變量一旦多了,這樣做是非常不現實的.所以如果只是想單純的修改結構體中的爲數不多的變量的,可以使用Set Members節點.右鍵輸入set members 可以獲得你所創建的結構體類型的節點.但是發現這個節點沒有可以設置的項,所以我們點擊這個節點,在Detail窗口可以看到.

這裏寫圖片描述

在這裏我們只是想修改id,而不修改name.所以只需要顯示id,然後設置爲100.

這裏寫圖片描述

接下來通過打印判斷這樣修改是否正確:

這裏寫圖片描述

編譯後運行,發現卻是隻修改了id,保留了name.

這裏寫圖片描述

結構體的基本節點都在上面了,希望能夠幫助大家.

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