Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

SystemFont

继承: Font < Resource < RefCounted < Object

从系统字体加载的字体。如果未在宿主操作系统上实现,则回退到默认主题字体。

描述

SystemFont 会从系统字体中加载一个字体,该字体是名称能与 font_names 匹配的第一个字体。

会尝试匹配字体样式,但是并不保证。

返回的字体可能属于某个字体合集,也可能是设置了 OpenType“字重”“宽度”和/或“斜体”特性的可变字体。

你可以创建系统字体的 FontVariation,以便对其特征进行精细控制。

注意:这个类在 iOS、Linux、macOS、Windows 上实现,在其他平台上会回退到默认主题字体。

属性

bool

allow_system_fallback

true

FontAntialiasing

antialiasing

1

bool

font_italic

false

PackedStringArray

font_names

PackedStringArray()

int

font_stretch

100

int

font_weight

400

bool

force_autohinter

false

bool

generate_mipmaps

false

Hinting

hinting

1

int

msdf_pixel_range

16

int

msdf_size

48

bool

multichannel_signed_distance_field

false

float

oversampling

0.0

SubpixelPositioning

subpixel_positioning

1


属性说明

bool allow_system_fallback = true

  • void set_allow_system_fallback ( bool value )

  • bool is_allow_system_fallback ( )

如果设置为 true,则可以自动将系统字体作为回退使用。


FontAntialiasing antialiasing = 1

字体抗锯齿模式。


bool font_italic = false

  • void set_font_italic ( bool value )

  • bool get_font_italic ( )

如果设置为 true,则优先使用斜体(italic)或伪斜体(oblique)。


PackedStringArray font_names = PackedStringArray()

要搜索的字体家族名称数组,会使用第一个与之匹配的字体。


int font_stretch = 100

  • void set_font_stretch ( int value )

  • int get_font_stretch ( )

字体优先使用的拉伸量,相对于正常宽度。介于 50%200% 之间的百分比。


int font_weight = 400

  • void set_font_weight ( int value )

  • int get_font_weight ( )

字体优先使用的字重(粗度)。在 100...999 范围内的值,正常字重为 400,粗体字重为 700


bool force_autohinter = false

  • void set_force_autohinter ( bool value )

  • bool is_force_autohinter ( )

如果设置为 true,则支持自动微调,优先于字体内置微调。


bool generate_mipmaps = false

  • void set_generate_mipmaps ( bool value )

  • bool get_generate_mipmaps ( )

如果设置为 true,则为字体纹理生成 mipmap。


Hinting hinting = 1

字体微调模式。


int msdf_pixel_range = 16

  • void set_msdf_pixel_range ( int value )

  • int get_msdf_pixel_range ( )

最小和最大可表示的有符号距离之间的形状周围的范围宽度。如果使用字体轮廓,msdf_pixel_range 必须至少设置为最大字体轮廓大小的两倍msdf_pixel_range 的默认值为 16,允许大小最大到 8 的轮廓看起来正确。


int msdf_size = 48

  • void set_msdf_size ( int value )

  • int get_msdf_size ( )

用于生成 MSDF 纹理的源字体大小。较高的值允许更高的精度,但渲染速度较慢并且需要更多内存。只有当注意到字形渲染中明显缺乏精度时,才增加该属性的值。


bool multichannel_signed_distance_field = false

  • void set_multichannel_signed_distance_field ( bool value )

  • bool is_multichannel_signed_distance_field ( )

如果设置为 true,则所有大小的字形都将使用从动态字体矢量数据生成的单个多通道带符号距离场渲染。


float oversampling = 0.0

  • void set_oversampling ( float value )

  • float get_oversampling ( )

字体过采样系数,如果设置为 0.0 则使用全局过采样系数。


SubpixelPositioning subpixel_positioning = 1

字体字形的次像素定位模式。次像素定位为较小的字体提供了更清晰的文本和更好的字偶距,但会牺牲内存占用和字体栅格化速度。使用 TextServer.SUBPIXEL_POSITIONING_AUTO 可以根据字体大小自动启用。