1. 程式人生 > >UE4 UI更新的三種方式及具體實現的方式(最優化的方式是事件驅動)

UE4 UI更新的三種方式及具體實現的方式(最優化的方式是事件驅動)

UE4中UI的更新分為下面三種方式:函式繫結和屬性繫結是Tick更新的,也就是說每幀都在呼叫資料就行更新,他們倆個原理是一樣的,最優化的方式是事件繫結!

1、函式繫結:
百分比血量 來舉例
1、拖入Progress Bar
在這裡插入圖片描述
2、在Progress裡新建繫結函式
在這裡插入圖片描述
3、設定如下:為了優化考慮,先將獲得玩家角色做成一個函式,方便呼叫
在這裡插入圖片描述
4、這裡回到FPP_Character裡面新建2個變數Health和MaxHealth,並且將MaxHealth的值賦值給Health;
在這裡插入圖片描述
UI裡面剛剛新建的函式改一下名字,方便後期調整,具體設定如下:
在這裡插入圖片描述
2、屬性繫結
這裡我們用血量和數字來實現
1、拖入一個文字,設定如下:
在這裡插入圖片描述


2、進入UI藍圖介面,新建變數為Text屬性,不然文字繫結那裡讀取不到
在這裡插入圖片描述
3、具體設定如下:
在這裡插入圖片描述
4、回到Designer介面,設定如下:
在這裡插入圖片描述
至此,函式繫結和屬性繫結都已經實現完畢,測試!

3、事件繫結
這裡大概說下幾個關鍵點,不舉例子了:
1、首先在角色藍圖裡的觸發事件中新增一個事件調配器,和觸發事件的邏輯連上,這裡用Call,意思就是這個事件觸發時這個事件調配器就也會觸發;有了這個觸發器就可以做很多事了;
在這裡插入圖片描述
2、在UI的藍圖裡設定如下:這裡呼叫事件調配器的時候用Bind,具體就不多解釋了,說下意思:就是當上面這個事件調配器響應時(這裡新增一個自定義事件也是方便驅動UI裡面要實現的功能)UI就會被驅動,然後來實現功能;
在這裡插入圖片描述

這裡做個簡單的總結:這3個方式各有利弊,但整體來說,為了專案的優化還是多考慮事件驅動,就是麻煩一些,考慮的要多一些!!!!