| 方法 | 决定什么 |
|---|---|
surface_box · floating_box · overlay_box | 卡片和面板的表面、浮动层,以及压在游戏画面或地图上的胶囊标签 |
chip_box · chip_ink | 标签片的面板,以及压在它上面仍然读得清的文字颜色 |
slot_box · slot_ink | 快捷槽的面和上面的文字 |
disc_box | 头像或徽标背后的圆形 |
alert_box · skeleton_box · segment_box | 内联提醒、占位骨架、分段控件 |
coach_ring_box | 新手引导圈在目标周围的那个标记 |
draw_joystick · draw_coach_pointer | 直接绘制出来的东西 —— 摇杆和它的指针 |
divider_color · divider_thickness · section_box | 分隔线和分节标题 |
badge_box | 快捷槽上的角标 —— 数量和剩余时间 |
progress_fill_box · notice_box · tint_notice | 状态条填充(当填充色在底槽上达不到 3:1 时加描边)和消息条 |
class_name MySkin extends GoSkin
func draw_joystick(canvas: CanvasItem, center: Vector2, knob: Vector2,
radius: float, knob_radius: float, ink: Color, base: Color, active: bool) -> void:
# 控件已经把位置算好了 —— 这里只负责画
canvas.draw_circle(center, radius, Color(base, 0.4))
canvas.draw_circle(knob, knob_radius, ink)
StyleBoxFlat 画不出来的形状
| 类 | 它画出什么 |
|---|---|
GoStyleBoxCut | 斜切的角、一条加粗的强调边、外发光 |
GoStyleBoxBracket | 只画四角的标记,不把内容围起来 |
GoStyleBoxMedieval | 锻造边框 —— 铆钉、角落雕花、斜面高光,以及铁、皮革或羊皮纸的纹理 |
三者都能像别的 StyleBox 一样序列化进 Theme 资源 —— 正是这一点让主题能够改变形状。
内边距要通过
content_margin_* 给。 在 GDScript 里继承 StyleBox 意味着
_get_style_margin() 永远不会被调用(在 Godot 4.7 上实测)。请把内置字段填上,
否则内容会紧贴边框。