UE4全反射零耦合筆記 UMG與C 互動

2021-10-12 12:35:09 字數 1501 閱讀 8284

1,建立widget

//建立widget方法一:createwidget

//u***widgetclass是uclass

u***widget* xwidget = createwidget< u***widget >

(getworld()

,u***widgetclass)

;//建立widget方法二 : 通過widgetthree建立元件,只能在widget內部建立

uimage* dynimage = widgettree-

>constructwidget

(uimage::

staticclass()

);

2,獲取ui控制項

//獲取方式一:強轉子集

ucanvaspanel* rootpanel = cast

(getrootwidget()

);if(rootpanel)

//獲取控制項方法二: getwidgetfromname

ubutton* buttontwo =

(ubutton*

)getwidgetfromname

(text

("buttontwo"))

;//獲取控制項方法三 : 反射繫結, 變數名和umg裡的控制項名要一致

uproperty

(meta =

(bindwidget)

) ubutton* buttonone;

3,繫結按鈕事件

//繫結按鈕事件方法一 :	__internal_adddynamic

buttonone-

>onclicked.

__internal_adddynamic

(this

,&ufwaffectwidget::buttononeevent,

fname

("buttononeevent"))

;//繫結按鈕事件方法二 : fscriptdelegate

fscriptdelegate buttwodel;

buttwodel.

bindufunction

(this

,"buttontwoevent");

buttontwo-

>onreleased.

add(buttwodel)

;//繫結按鈕方法三 : blueprintcallable函式

4,新增元件與刪除元件

//新增元件

uuserwidget-

>addchild***

//移除元件

uuserwidget -

>

removechild

(dynimage)

;uuserwidget -

>

removefromparent()

;

UE4 (反射)反射採集

一 現在有兩個反射採集形狀 球體和盒體 通常將螢幕空間反射和反射捕獲相結合,兩者各有優缺點,結合使用是希望同個結合兩者的優點來彌補缺點。大多情況下使用球體反射採集 效果 不管怎麼移動相機位置,螢幕上都會有反射效果。問題 當反射採集與螢幕空間反射過渡時,反射畫面中的物體位置會發生變化。原因 當螢幕空間...

UE4平面反射

ue4 支援實時平面反射,它比螢幕空間反射 ssr 更加精確,但渲染開銷較高。渲染開銷較高的原因來自平面反射的工作原理。因為平面反射實際上將從反射方向再次對關卡進行渲染。在渲染方面,螢幕空間反射 ssr 比平面反射更為高效,但可靠性較差。下圖將ssr的缺陷和平面反射進行了對比。螢幕空間反射 左圖展示...

UE4學習筆記 Gameplay Classes

增加類 編輯器中有乙個類嚮導,可以生成類所需要的檔案和基礎巨集 標頭檔案由於ue4對c 做了擴充套件,實現了如序列化反射等特性,跟qt的做法類似 在 中加入一些巨集關鍵字,在編譯期間生成相應的c 因此,對於每個類來說,都有會生成乙個classname.generated.h的檔案 類宣告uclass...