11、Cocos Creator 2D 渲染组件:Label 组件

Label 组件用来显示一段文字,文字可以是系统字体、TrueType? 字体、BMFont 字体或艺术数字。另外,Label 还具有排版功能。

Label 属性

属性 功能说明
String 文本内容字符串。
Horizontal Align 文本的水平对齐方式。可选值有 LEFT,CENTER 和 RIGHT。
Vertical Align 文本的垂直对齐方式。可选值有 TOP,CENTER 和 BOTTOM。
Font Size 文本字体大小。
Line Height 文本的行高。
SpacingX 文本字符之间的间距。(使用 BMFont 位图字体时生效)
Overflow 文本的排版方式,目前支持 CLAMP,SHRINK 和 RESIZE_HEIGHT。详情见下方的 Label 排版
Enable Wrap Text 是否开启文本换行。(在排版方式设为 CLAMP、SHRINK 时生效)
Font 指定文本渲染需要的字体文件,如果使用系统字体,则此属性可以为空。
Font Family 文字字体名字。(使用系统字体时生效)
Enable Bold 是否启用黑体。(使用系统字体或 TTF 字体时生效)
Enable Italic 是否启用斜体。(使用系统字体或 TTF 字体时生效)
Enable Underline 是否启用下划线。(使用系统字体或 TTF 字体时生效)
Underline Height 下划线的高度。
Cache Mode 文本缓存类型包括 NONEBITMAPCHAR 三种。仅对系统字体或 TTF 字体有效,BMFont 字体无需进行这个优化。详情见下方的 文本缓存类型
Use System Font 是否使用系统字体。
Src Blend Factor 混合文本图片时,源图片的取值模式。可参考 BlendFactor API,具体说明可参考下文 系统文本的混合模式说明 部分的内容。
Dst Blend Factor 混合显示两张图片时,目标图片的取值模式。可参考 BlendFactor API,具体说明可参考下文 系统文本的混合模式说明 部分的内容。
Materials 材质资源,详情请参考文档 Material

Label 排版

属性 功能说明
CLAMP 文字尺寸不会根据 Bounding Box 的大小进行缩放,Wrap Text 关闭的情况下,按照正常文字排列,超出 Bounding Box 的部分将不会显示。Wrap Text 开启的情况下,会试图将本行超出范围的文字换行到下一行。如果纵向空间也不够时,也会隐藏无法完整显示的文字。
SHRINK 文字尺寸会根据 Bounding Box 大小进行自动缩放(不会自动放大,最大显示 Font Size 规定的尺寸)。 Wrap Text 开启时,当宽度不足时会优先将文字换到下一行,如果换行后还无法完整显示,则会将文字进行自动适配 Bounding Box 的大小。 Wrap Text 关闭时,则直接按照当前文字进行排版,如果超出边界则会进行自动缩放。 注意:这个模式在文本刷新的时候可能会占用较多 CPU 资源。
RESIZE_HEIGHT 文本的 Bounding Box 会根据文字排版进行适配,这个状态下用户无法手动修改文本的高度,文本的高度由内部算法自动计算出来。

文本缓存类型(Cache Mode)

属性 功能说明
NONE 默认值,Label 中的整段文本将生成一张位图。
BITMAP 选择后,Label 中的整段文本仍将生成一张位图,但是会尽量参与 动态合图。只要满足动态合图的要求,就会和动态合图中的其它 Sprite 或者 Label 合并 Draw Call。由于动态合图会占用更多内存,该模式只能用于文本不常更新的 Label补充:和 NONE 模式一样,BITMAP 模式会强制给每个 Label 组件生成一张位图,不论文本内容是否等同。如果场景中有大量相同文本的 Label,建议使用 CHAR 模式以复用内存空间。
CHAR 原理类似 BMFont,Label 将以"字"为单位将文本缓存到全局共享的位图中,相同字体样式和字号的每个字符将在全局共享一份缓存。能支持文本的频繁修改,对性能和内存最友好。不过目前该模式还存在如下限制,我们将在后续的版本中进行优化: 1、该模式只能用于字体样式和字号固定(通过记录字体的 fontSize、fontFamily、color、outline 为关键信息,以此进行字符的重复使用,其他有使用特殊自定义文本格式的需要注意),并且不会频繁出现巨量未使用过的字符的 Label 。这是为了节约缓存,因为全局共享的位图尺寸为 2048 * 2048 ,只有场景切换时才会清除,一旦位图被占满后新出现的字符将无法渲染。 2、不能参与动态合图(同样启用 CHAR 模式的多个 Label 在渲染顺序不被打断的情况下仍然能合并 Draw Call) 3. 该模式在 原生平台 上使用 FreeType 渲染。
相关推荐
虚妄狼4 小时前
【Nuxt3】安装 Naive UI 按需自动引入组件
ui·vue
美狐美颜sdk4 小时前
从API到UI:直播美颜SDK中的滤镜与贴纸功能开发与落地方案详解
人工智能·ui·音视频·美颜sdk·视频美颜sdk·美颜api
虾球xz5 小时前
游戏引擎学习第295天:堆叠房间用于Z层调试
c++·人工智能·学习·游戏引擎
帮帮志5 小时前
vue3与springboot交互-前后分离【验证element-ui输入的内容】
spring boot·后端·ui
hellolxb6 小时前
Unreal Engine: Windows 下打包 AirSim项目 为 Linux 平台项目
linux·游戏引擎·虚幻
子朔不言6 小时前
MH22D3开发高级UI应用,适配arm2d驱动
mcu·ui·arm2d·mh22d3·新龙微
国际云,接待7 小时前
腾讯云怎么在游戏云中助力
服务器·游戏·云原生·重构·云计算·腾讯云
韩仔搭建7 小时前
第三章:UI 系统架构拆解与动态界面管理实录
ui
繁依Fanyi9 小时前
用 CodeBuddy 实现「IdeaSpark 每日灵感卡」:一场 UI 与灵感的极简之旅
开发语言·前端·游戏·ui·编辑器·codebuddy首席试玩官
虾球xz9 小时前
游戏引擎学习第292天:实现蛇
c++·学习·游戏引擎