关闭

虚幻4 C++ 九宫格的实现

1364人阅读 评论(0) 收藏 举报
分类:

虚幻4 C++九宫格的实现

思路:

美术一般都会提供一个用来九宫格的背景图片,然后程序把图片切成9份,每份做特殊处理。


角落都不用拉伸,上下边缘向左右拉伸,左右边缘向上下拉伸,中间背景颜色整张拉伸。

最后背景板的结果如下图:



UMG实现的话,每个部分创建一个CANVAS PANEL,panel里面添加一个Image.左下角就这么显示:


绿色是canvas Panel 绿色星星是panel的锚点。红色是图片,红色星星和绿色星星重叠,是图片的锚点。

这样图片就只能显示出Panel部分,只有一个角了。


SNew(SConstraintCanvas)
+ SConstraintCanvas::Slot()
.Offset(FMargin(0.0,0.0,0.0,0.0))
.Anchors(FAnchors(0.0, 0.0, 1.0, 1.0))
.Alignment(FVector2D(0.0, 0.0))
[
SNew(SConstraintCanvas)

+ SConstraintCanvas::Slot()
.Offset(FMargin(0.0, -Corner_Percent, Corner_Percent, Corner_Percent))
.Anchors(FAnchors(0.0, 1.0, 0.0, 1.0))
.Alignment(FVector2D(0.0, 0.0))
.ZOrder(1)
[
SNew(SConstraintCanvas)
+ SConstraintCanvas::Slot()
.Offset(FMargin(0.0, -100, 100, 100))
.Anchors(FAnchors(0.0, 1.0, 0.0, 1.0))
.Alignment(FVector2D(0.0, 0.0))
[
SNew(SImage)
.Image(brush)
]
]

]

我这里只贴一个左下角的代码,其他代码读者可以自己尝试完成。







0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:96434次
    • 积分:1851
    • 等级:
    • 排名:千里之外
    • 原创:90篇
    • 转载:9篇
    • 译文:0篇
    • 评论:17条
    最新评论