UE4 tutorial : UI 筆記

使用UE建立UI使用者介面
https://www.raywenderlich.com/480-unreal-engine-4-ui-tutorial


Widgets

Widget是指Unreal提供的UI元件總稱,同樣的可以與玩家使用者有所互動。
例如button Widget可以被按下click on

Widget物界中也可以包含其他Widget,例如:

這個Widget中就包含了兩個Widget,一是Text Label ,一是提供輸入的Textbox。


建立Widgets



  1. 設計器:該區域包含小部件的可視化表示。按住鼠標右鍵移動鼠標進行平移通過縮放滾動你的鼠標滾輪
  2. 詳細信息:您選擇的任何小部件都將在此處顯示其屬性
  3. Palette您可以使用的所有組件的列表。任何用戶創建的小部件也將顯示在此處。
  4. Hierarchy您當前正在使用的所有小部件的列表
  5. 動畫:小部件可以具有某些動畫屬性,例如位置和大小。該面板列出了所有動畫。
  6. 時間軸:選擇動畫時,此面板將顯示動畫的屬性和關鍵幀
  7. 編輯器模式:在這裡,您可以在設計器和圖形模式之間切換。圖形模式幾乎與藍圖的事件圖形相同。


旁邊有UI元件可以直接拖到Canvas中使用

錨點

透過一些錨點設計,可以讓UI物件在不同的螢幕裝置中有著相似的layout

錨獎章代表你的錨的位置。只要您選擇了UI物件,它就會出現。

目前先將UI設計成這樣:

顯示UHD


開啟範例中的GameManager

Restart和Set up Camera是範例中拉好的自定義function

其中,Event BeginPlay相當於Unity的Start()

在經過兩個function之後,在Set Up Camera那邊要往下接的時候,先拉出一條線到一半,系統會提示接下來你有那些Node可以選擇,之後就選擇Create Widget就可以建立UI內容,將UI class的東西print在canvas上了,之後再接Add to Viewport就可以把UI介面結果加入到螢幕畫面中。

之後UI就會被畫在螢幕上了

Setting the reference

先跳過,看的不是很懂

Update UI

開啟UI blueprint,可以將Text設為變數以取得其資訊。

新增function

將函數重命名為UpdateCounterText

Default情況下,該圖將包含一個Entry節點。function執行時,它將在此處開始。



  1. 當你呼叫UpdateCounterTextBP_GameManager中取得ShapesCollected
  2. 透過ToText(INT)節點的值轉換ShapesCollected到一個text類型
  3. SetText(Text)會將CounterText (UI元件)的text設置為ToText(int)此一Node中原本所記錄的值
之後結果就會被更新到UI介面之中並被print出來


Binding 綁定

圖學之中也有類似的概念啦,不過有些微不同的感覺,
Unreal的binding會使元件有自動更新的效果,可以將一些color、Shadow顏色、文字等等自動get set的方式來做到資料互通。

但是這樣其實相當消耗效能,即便沒有資訊被更改,他依舊也是不停的在檢查與更新,所以沒必要的話其實不是很需要開著binding

建立binding

在Text內容那邊的按鍵選擇建立binding

他會自動生成一個Node來產生一個function,修改該Node的名稱來完成update的function

從GameManager中get成員Time Remaining並把他填到UI中 (在讓UI畫出來)


摘要:

  • 綁定將不斷調用UpdateTimerText函數
  • 該功能將從變量BP_GameManager得到TimeRemaining
  • 所述ToText(float)節點將從值轉換TimeRemaining到一個textt類型。
  • 然後將轉換後的值輸出到Return節點



留言

這個網誌中的熱門文章

UE4 tutorial : Blueprints 筆記

UE4 tutorial : Materials 筆記

UE4 tutorial : Getting Started