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...