Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

TextureButton

继承: BaseButton < Control < CanvasItem < Node < Object

基于纹理的按钮。支持按下、悬停、停用和焦点状态。

描述

TextureButton 的功能与 Button 相同,只是它使用精灵而不是 Godot 的 Theme 主题资源。它的创建速度更快,但它不像更复杂的 Control 那样支持本地化。

另见 BaseButton,它包含了与该节点相关的通用属性和方法。

注意:建议设置“正常”状态的纹理(texture_normal)。如果未设置 texture_normalTextureButton 仍会接受输入事件、仍然可以点击,但是用户无法看到这个按钮,除非设置了其他状态的纹理(例如悬停时会显示 texture_hover)。

教程

属性

bool

flip_h

false

bool

flip_v

false

bool

ignore_texture_size

false

StretchMode

stretch_mode

2

BitMap

texture_click_mask

Texture2D

texture_disabled

Texture2D

texture_focused

Texture2D

texture_hover

Texture2D

texture_normal

Texture2D

texture_pressed


枚举

enum StretchMode: 🔗

StretchMode STRETCH_SCALE = 0

缩放以适应节点的边界矩形。

StretchMode STRETCH_TILE = 1

在节点的边界矩形内平铺。

StretchMode STRETCH_KEEP = 2

纹理保持它的原始尺寸,并保持在边界矩形的左上角。

StretchMode STRETCH_KEEP_CENTERED = 3

纹理保持其原始大小,并在节点的边界矩形中保持居中。

StretchMode STRETCH_KEEP_ASPECT = 4

缩放纹理以适应节点的边界矩形,但保持纹理的长宽比。

StretchMode STRETCH_KEEP_ASPECT_CENTERED = 5

缩放纹理以适应节点的边界矩形,使其居中,并保持长宽比。

StretchMode STRETCH_KEEP_ASPECT_COVERED = 6

缩放纹理,使较短的一边适应边界矩形。另一边则裁剪到节点的界限内。


属性说明

bool flip_h = false 🔗

  • void set_flip_h(value: bool)

  • bool is_flipped_h()

如果为 true,纹理将被水平翻转。


bool flip_v = false 🔗

  • void set_flip_v(value: bool)

  • bool is_flipped_v()

如果为 true,纹理将被垂直翻转。


bool ignore_texture_size = false 🔗

  • void set_ignore_texture_size(value: bool)

  • bool get_ignore_texture_size()

如果为 true,则计算最小尺寸时不会考虑该纹理的大小,因此 TextureButton 能够调整地比该纹理大小还要小。


StretchMode stretch_mode = 2 🔗

控制调整节点包围矩形时纹理的行为。可用的选项见 StretchMode 常量。


BitMap texture_click_mask 🔗

  • void set_click_mask(value: BitMap)

  • BitMap get_click_mask()

用于点击检测的纯黑白 BitMap 图像。在遮罩上,白色像素代表按钮的可点击区域。可用它来创建具有弯曲形状的按钮。


Texture2D texture_disabled 🔗

节点处于禁用状态时显示的纹理。见 BaseButton.disabled。未赋值时 TextureButton 会显示 texture_normal


Texture2D texture_focused 🔗

节点持有鼠标或键盘焦点时覆盖在基础纹理上的纹理。因为 texture_focused 会在基础纹理上方显示,所以要让基础纹理可见就应该使用半透明纹理。这种情况下比较适用代表轮廓或者下划线的纹理。要禁用焦点的视觉效果,请分配一张任意大小的全透明纹理。请注意,禁用焦点的视觉效果不利于键盘/控制器的导航,所以出于可用性的原因并不建议这么做。


Texture2D texture_hover 🔗

鼠标悬停在节点上时显示的纹理。未赋值时 TextureButton 处于悬停状态会显示 texture_normal


Texture2D texture_normal 🔗

节点不处于禁用、悬停、按下状态时,默认显示的纹理。该纹理仍会在聚焦状态下显示,上层绘制的是 texture_focused


Texture2D texture_pressed 🔗

鼠标在节点上按下时显示的纹理,要求节点持有键盘焦点且玩家按下了回车键或 BaseButton.shortcut 键。未赋值时 TextureButton 处于按下状态会显示 texture_hover