Up to date

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

TextureButton

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

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

描述

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

“正常”状态必须包含一个纹理(texture_normal);其他纹理是可选的。

也请参阅 BaseButton,它包含了与该节点相关的通用属性和方法。

教程

属性

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 ( bool value )

  • bool is_flipped_h ( )

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


bool flip_v = false

  • void set_flip_v ( bool value )

  • bool is_flipped_v ( )

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


bool ignore_texture_size = false

  • void set_ignore_texture_size ( bool value )

  • bool get_ignore_texture_size ( )

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


StretchMode stretch_mode = 2

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


BitMap texture_click_mask

  • void set_click_mask ( BitMap value )

  • BitMap get_click_mask ( )

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


Texture2D texture_disabled

节点被禁用时显示的纹理。参阅 BaseButton.disabled


Texture2D texture_focused

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


Texture2D texture_hover

当鼠标悬停在节点上时显示的纹理。


Texture2D texture_normal

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


Texture2D texture_pressed

如果节点有键盘焦点且玩家按下回车键,或者玩家按下 BaseButton.shortcut 键,则鼠标悬停在节点上时显示的纹理。