天天看点

【UE4从零开始 026】裁剪

裁剪 是使用边界框将渲染对象(图形和文本)限制在某个区域中,以使超出边界框的任何内容都不显示。

【UE4从零开始 026】裁剪

在本示例中,每个按钮都是显示的文本的父项。这些示例将展示是由按钮还是文本控制裁剪。

  • 左图 - 按钮或文本上都未启用裁剪。
  • 中图 - 文本上启用裁剪。
  • 右图 - 按钮上启用裁剪。

画布(Canvas) 面板(又称裁剪区)的轮廓为蓝色,代表游戏屏幕,它将会裁剪(即不绘制)游戏超出该区域的任何内容。

【UE4从零开始 026】裁剪
在UMG设计器图形中,“画布(Canvas)面板”(蓝色)代表游戏屏幕的裁剪区。

裁剪属性

可以在UMG 细节(Details) 面板的 裁剪(Clipping) 部分下更改基于所选的控件处理裁剪的方式。

【UE4从零开始 026】裁剪
属性 说明
继承(Inherit) 该控件不裁剪子项,并且将遵循从父控件传入的任何裁剪/剔除。
裁剪至边界(Clip to Bounds) 该控件裁剪控件边界外的内容。它将边界与先前的裁剪区域相交。
裁剪至边界 - 不相交(Clip to Bounds - Without Intersecting) 该控件裁剪其边界外的内容。它不与任何现有裁剪几何体相交,它推送新的裁剪状态。因此它事实上可渲染层级边界外未裁剪的内容。
裁剪至边界 - 始终(Clip to Bounds - Always) 该控件裁剪其边界外的内容。它将边界与先前的裁剪区域相交。
按需(On Demand) 当所需的大小比分配给控件的几何体大时,该控件裁剪其边界外的内容。当出现这种情况时,它的作用与 裁剪至边界(Clip to Bounds) 相同。

裁剪至边界 - 始终(Clip to Bounds - Always) :无法忽略该裁剪区域,它将始终裁剪子项。

裁剪至边界 - 不相交(Clip to Bounds - Without Intersecting):无法忽略设置为 裁剪至边界 - 始终(Clip to Bounds - Always) 的裁剪区。

在大部分情况下,都无需调整裁剪模式,除非你因无法控制文本的长度而需要裁剪它。例如,滚动框和可编辑文本控件就符合这种情况,它们被设置为 裁剪至边界(Clip to Bounds) 而非“继承(Inherit)”。

不同裁剪空间中的元素无法一起进行批处理,因此裁剪会带来性能成本。因此,除非面板真的需要阻止内容在其边界之外显示,否则请勿启用裁剪。

继续阅读