当前位置:   article > 正文

UE5——UMG——分析1_ue5 umg

ue5 umg

SWiget控件基本都继承这个三大类:SPanel,SCompoundWidget,SLeafWidget

SLeafWidget:没有Slot的Widget,自己就是控件树的叶子节点

SCompoundWidget:一个Slot的Widget,Slot内可以放置一个子Widget

SPanel:多个Slot的Widget,通过OnArrangeChildren对Widget布局
在这里插入图片描述

布局

在这里插入图片描述
Anchors:锚点,缩放时相对于父控件的位置
1.最小值和最大值相等时,缩放不会拉伸,可以指定Position和Size
在这里插入图片描述
2.最小和最大不相等时,缩放时会根据锚定的比例拉伸,可以指定0ffset
在这里插入图片描述
计算的代码
在这里插入图片描述
Alignment:对齐,相当于指定控件枢轴点,原点
1.在锚点不相等时[可拉伸时],Alignment无效
2.在锚点相等时[不可拉伸时〕,顶点坐标会减去Alignment*Size值

Z0rder:决定绘制顺序的排序值,小的先画,大的后画
1.不同Z0rder的Batch不会合并

Padding/Size/Horizontal Alignment/Vertical Alignment
在这里插入图片描述
1.简单版的Slot,本质和上面没区别,但可控的模式会少一些
2.Size Auto会根据ChildDesiredSize来设置大小
3.Size Fill会根据指定比例平摊剩余空间

绘制和布局入口 OnPaint:
在这里插入图片描述
布局函数 0nArrangeChildren:
1.由ArrangeChildren调用,ArrangeChildren由OnPaint调用
2.有多个Child Slot的控件有单独实现
3.LeafWidget不用专门实现这个函数

GetDesiredSize 控件自己的渴望大小
1.得到Widget大小,内部计算后会缓存
2.Auto模式会使用这个值作为FixedSize,总大小减去总Fixed,剩余由Fi模式填充
在这里插入图片描述
SlatePrepass 平滑预传递
1.SWindow会使用prepass预先计算DesireSize并缓存
2.prepass内部也会按需递归调用所有子控件做prepass,会根据NeedPrepass确定是否需要
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/646599
推荐阅读
相关标签
  

闽ICP备14008679号