gohud

Tek bir kaynakla sürülen oyun arayüzü

gohud, Godot 4.6 ve sonrası için bir HUD ve UI kitidir. Yüzen pencereler, alt sayfalar, iletişim kutuları, formlar, snackbar'lar, rehber işaretleri, HUD çubukları, hızlı slotlar ve sanal joystick tek bir temayla ve değiştirilebilir tek bir simge setiyle çalışır; güvenli alanı, sanal klavyeyi, RTL'i ve dokunma hedeflerini sizin yerinize halleder. Altı ön ayar — varsayılan, bilimkurgu ve ortaçağ, her biri koyu ve açık — rengi ve biçimi tek satırda değiştirir.

Godot 4.6+ v1.0.1 Saf GDScript Autoload gerekmez MIT 6 ön ayar 21 dil 100 simge dahil

Bir oyunda nasıl görünüyor

Ortaçağ ve bilimkurgu ön ayarları — karakter sayfaları, envanterler ve görevler; formlar, ızgaralar ve soru kartları; köşeli paneller ve dokunmatik denetimler. Ön ayarı değiştirmek tek satır koddur.

gohud ortaçağ teması — can, mana ve dayanıklılık çubukları olan bir karakter sayfası, hızlı slotlardan oluşan bir heybe ve dövme altın çerçeveler içinde bir görev günlüğü
Ortaçağ — karakter, envanter ve görevler
gohud ortaçağ teması — ad alanı, anahtar, onay kutuları ve ses kaydırıcısı olan bir giriş paneli, karolardan oluşan bir ızgara ve Kabul Et ile Reddet seçenekli bir grup daveti soru kartı
Ortaçağ — formlar, ızgaralar ve soru kartları
gohud bilimkurgu teması — altıgen joystick, Sabit / Takip / Göreli anahtarı ve yuvarlak eylem düğmeleri olan pahlı bir dokunmatik denetim paneli
Bilimkurgu — köşeli paneller ve dokunmatik denetimler

Altı ön ayarın tamamı ve nasıl değiştirilecekleri →

Sizin elinizden aldıkları

Oyun arayüzünde en çok zamanı yiyen şey bir düğmenin biçimi değildir — cihazdan cihaza birbirinden ayrışan her şeydir. gohud bu ayrışmayı tek bir yerde halleder.

Her ölçü bir token'dır

Boşluklar, köşeler ve yazı boyutları sayı olarak yazılmaz, adıyla çağrılır. Temayı değiştirin, ekranın tamamı onunla birlikte hareket eder.

Görünen boyut ≠ basılabilir boyut

Bir kapatma düğmesi 36dp görünür ama dokunma hedefi 48dp'dir. Sıkışık slotlar üst üste bindiğinde, basışı merkezi daha yakın olan alır.

Çentikler ve klavyeler

HUD parçaları güvenli alanın içinde durur; sanal klavye belirdiğinde bir giriş alanı onun üstüne yükselir.

Geri, tek bir şeyi kapatır

Escape ve Android'in Geri tuşu yalnızca en üstteki yüzeyi kapatır. Üst üste açılmış pencereler birlikte yok olmaz.

Bildirimler girdiyi çalmaz

Bir snackbar'ın üstüne basın, altındaki düğme basışı alır. Odak da elinden alınmaz.

Simgeler adıyla istenir

Widget'lar yalnızca GoIconSet.CLOSE bilir. Seti değiştirin, tek satır koda dokunmadan bütün çizimler değişsin.

Altı görünüm, tek satır

GoUi.use_preset() temayı, kaplamayı ve simgeleri birlikte değiştirir — yuvarlak, pahlı bilimkurgu veya dövme ortaçağ çerçeveleri.

Okunaklılık ölçülerek

Her tema WCAG'a göre denetlenir; düğme durumları ve saf beyaz ile saf siyah üstündeki yarı saydam HUD panelleri dahil.

Her şey eklenti etkinleştirilmeden de çalışır. Etkinleştirmek, pencere boyutunu, dp ölçeğini ve klavye yüksekliğini izleyen bir GoRuntime autoload'u ile yapılandırma kaynağı ve ön ayar için proje ayarlarını ekler — kolaylıktır, zorunluluk değil.

gohud kurulumu

İki yol var. Yapay zekâ ajanınıza yaptırın ya da klasörü projenize bırakın — başka ayarlanacak bir şey yok.

Kurulum

Hızlı başlangıç

Beş satır, temalı bir ekranı gösterir. Baştan sona anlatım kurulum sayfasında.

Hızlı başlangıç

Görünümü değiştirin — renkleri ve biçimi

Bir Theme yalnızca motorun çizdiğini yeniden biçimlendirebilir. StyleBoxFlat'in sahip olduğu tek köşe yuvarlak köşedir; joystick, hızlı slotlar ve rehber işareti ise kodla çizilir — dolayısıyla tek başına bir tema onların biçimini asla değiştiremez. gohud bu yüzden ön ayarlarla gelir: tek bir birim olarak seçilen bir tema, bir kaplama ve bir simge seti.

GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)   # tema, kaplama ve simgeler birlikte
Ön ayarGörünüm
default_darkÖzgün gohud — yuvarlak köşeler, yumuşak mavi vurgu
default_lightAynı biçimler, açık bir palet üstünde
scifi_darkPahlı köşeler, camgöbeği neon kenarlar ve ışıma, altıgen joystick, hedefleme köşelikleri
scifi_lightAynı köşeli biçimler, parlak bir teknik çizim paletinde
medieval_darkKoyu demir ve deri, antika altın çerçeveler, perçinler, gravür simgeler, Cinzel başlıklar
medieval_lightParşömen, mürekkep ve bronz; aynı dövme çerçevelerle
default_dark ön ayarıyla gohud galerisi — yuvarlak köşeler, mavi vurgu
default_dark — yuvarlak köşeler, yumuşak mavi vurgu
default_light ön ayarı — aynı biçimler, açık bir palet üstünde
default_light — aynı biçimler, açık palet
scifi_dark ön ayarı — pahlı köşeler ve camgöbeği neon
scifi_dark — pahlı köşeler, camgöbeği neon
scifi_light ön ayarı — aynı köşeli biçimler, teknik çizim paletinde
scifi_light — aynı köşeli biçimler, teknik çizim paleti

Bu dördü aynı galeri ekranıdır. Tek bir satır kod bile farklı değil — yalnızca ön ayarın adı. Düğme köşeleri, anahtar biçimleri, liste satırları ve giriş kenarlıkları hep birlikte hareket eder.

Ortaçağ koleksiyonu

medieval_dark demir ve deriyi antika altınla eşleştirir; medieval_light parşömen ve mürekkep kullanır. Menü çerçeveleri bir perçin ve küçük bir köşe süsü taşırken sürekli görünen HUD sessiz kalır; 16 gravür simge nesne adlarını yeniden çizer ve yalnızca başlıklar ile alt başlıklar pakete dahil Cinzel yazı tipini kullanır.

medieval_dark — karakter sayfası, hızlı slotlardan oluşan heybe ve görev günlüğü
medieval_dark — demir ve deri
medieval_light — aynı karakter, heybe ve görev ekranları parşömen üstünde
medieval_light — parşömen ve mürekkep

Her iki görüntü de standart widget'lardan kurulmuş examples/medieval/medieval.tscn dosyasıdır. Ortaçağ rehberi ve kendi krallığınızı nasıl kuracağınız →

Aynı ekran telefonda ve masaüstünde

Galeri görüntüleri dikey tutulan bir telefondur. Aşağıdaki ise aynı kodun 1280×800'deki hali — içerik okunabilir bir genişlikte (480dp) durur ve ortalanır, HUD ise köşelerde kalır. Form, yüzen HUD parçalarının etrafından dolaşır ama onlardan zaten uzaktaysa yerinden kıpırdamaz: yine de itmek geniş bir ekranda içeriği merkezden kaydırırdı.

1280x800'de default_dark — içerik ortalanmış, HUD köşelerde
default_dark · 1280×800
1280x800'de scifi_dark — pahlı paneller ve neonla aynı yerleşim
scifi_dark · 1280×800

Aynı sayfa, başka bir görünüm

default_dark içinde bir alt sayfa
Varsayılan — yuvarlak kart, sabit arama satırı ve alt bilgi
scifi_dark içinde bir alt sayfa — üst kenar boyunca neon vurgu kenarı
Bilimkurgu — üstte vurgu kenarı, kesik köşeler, ışıma

Birini Project Settings → gohud → Theme → Preset yolundan seçin ya da GoConfig.preset değerini verin. theme, skin veya icons alanlarını açıkça doldurmak ön ayarı geçersiz kılar; böylece bir ön ayarı alıp yalnızca birini değiştirebilirsiniz.

Yeni bir tema tek bir JSON dosyasıdır. new_theme.py kingdom --from medieval_dark, devralınan her değeri açık açık yazan bir palet oluşturur; make_theme.py kingdom temayı, denetim grafiklerini ve kaplama ayarlarını üretir, ardından ön ayar seçicide belirir. Her ayar ve her düğme →

Kaplamalar — bir Theme'in erişemediği yer

Bir kaplama; joystick'e, hızlı slot yüzlerine, rehber işareti halkasına, chip'lere, iskeletlere, uyarılara, ayırıcılara ve bölüm başlıklarına sahiptir. Alt sınıfını türetin ve yalnızca değiştirmek istediğinizi ezin.

class_name MySkin extends GoSkin

func slot_box(accent: Color, lit: bool) -> StyleBox:
    var box := GoStyleBoxCut.new()
    box.bg_color = accent
    box.cut = 6.0
    box.edge_color = accent
    return box
SınıfYapabildiği biçimler
GoStyleBoxCutÇapraz kesilmiş köşeler (pah), kalınlaştırılmış tek bir vurgu kenarı, dışa doğru ışıma
GoStyleBoxBracketİçeriği kuşatmadan yalnızca köşe işaretleri
GoStyleBoxMedievalPerçinli, köşesi gravürlü, eğim ışıltılı ve malzeme dokulu dövme bir çerçeve

Üçü de bir Theme kaynağına serileştirilir — bir temanın yalnızca rengi değil biçimi de değiştirebilmesini sağlayan şey budur. Pakete dahil alt sınıflar GoSkinSciFi ve GoSkinMedieval'dir.

GoStyle.box() her zaman bir StyleBoxFlat döndürür, çünkü çağıran kod onu alıp bg_color veya corner_radius değerini ayarlar. Özel bir biçimin hayatta kalması gerekiyorsa GoStyle.surface() kullanın.

Widget'lar

Parçalar, tek bir tabloda. Her biri ayrıntılı olarak →

SınıfTemelNe yapar
GoSurfaceControlYüzen kart kabuğu — ortada, altta veya bir denetime sabitlenmiş yerleşim, sabit başlık ve alt bilgi, kaydırılan gövde, sürükleyerek yeniden boyutlandırma
GoSheetCanvasLayerAlttan yükselen sayfalar; kendi katmanlarında olduklarından HUD'ın üstünde dururlar
GoDialogsNodeawait ettiğiniz onaylar ve uyarılar; geri alınamayan eylemler için destructive
GoFormMarginContainerGenişliği sınırlı formlar; sanal klavyeden ve avoid_hud ile HUD'dan kaçınır
GoScrollScrollContainerDokunmatik kaydırma; kaydırma çubuğu kartın iç boşluğuna gizlenir
GoNoticePanelContainerNe girdi ne de odak alan bir snackbar
GoPromptCardPanelContainerOyunu durdurmayan bir soru
GoCoachMarkControlGerçek denetimleri gösteren rehberli bir tur; hedefe basmak turu ilerletir
GoHudAnchorControlHUD parçalarını güvenli alandaki dokuz noktadan birine sabitler
GoBarControlYumuşatılmış geçişlerle can, mana ve deneyim çubukları
GoSlotButtonBir hızlı slot — simge, adet, bekleme süresi ve kısayol tek bir yüzde
GoJoystickControlSabit, takip veya göreli kipte sanal joystick
GoIconButtonButtonKüçük görünür, büyük basılır
GoStylestaticDüğmeler, liste satırları, giriş alanları, chip'ler, tablolar, sekmeler ve dahası; hepsi tek ve tutarlı bir yoldan üretilir

Beklemek, bildirmek, saymak

SınıfTemelNe yapar
GoSnackbarNodekendi yerini bulan mesaj
GoSpinnerControlsonu görünmeyen bir bekleyiş
GoBadgePanelContainerokunmamış noktası, YENİ etiketi, 99+

Formlar ve listeler

SınıfTemelNe yapar
GoFieldVBoxContainerhatalı olabilen satır
GoInputGroupHBoxContainerdüğmesine kaynaklanmış bir girdi
GoComboboxButtonarama yapan bir seçici
GoCodeInputVBoxContainerkupon ve hediye kodları
GoTableVBoxContainersıralanabilir başlıklar, seçilebilir satırlar
GoPaginationHBoxContainersayfalar ya da bir Daha fazla satırı

Oyunların gerçekten kullandığı biçimler

SınıfTemelNe yapar
GoRewardCalendarVBoxContainergünlük katılım
GoRadar · GoDonutControlbir bakışta istatistikler
GoCarouselVBoxContainerafişler ve karakter seçimi
GoKbdHBoxContaineryalan söylemeyen tuş ipuçları

Ekranın üstünde

SınıfTemelNe yapar
GoDrawerCanvasLayeryan panel
GoPopoverRefCountedsabitlenmiş kart
GoContextMenuRefCounteduzun basış ve sağ tık
GoConsoleCanvasLayergeliştirici konsolu

AI SKILL

gohud bir yapay zekâ becerisiyle gelir: API'nin tamamı, çalışmaya hazır şablonlar ve önizleme başlatıcı. Tek bloğu ajanınıza yapıştırın; gohud'u kurar ve nasıl kullanacağını bilir.

AI SKILL

Okunaklılık göz kararı değil, ölçümle

"Güzel" zevk meselesidir; "okunaklı" ölçülebilir. Soluk gri bir yazı iyi bir monitörde hoş görünür ve gün ışığındaki bir telefonda kaybolur — göz kararı seçmek bunu er ya da geç garanti eder.

python3 addons/gohud/tools/check_contrast.py

Her renk çifti ve her düğme durumunun etiketi, üstünde durduğu panele karşı altı temanın hepsinde WCAG'a göre ölçülür. Yarı saydam renkler önce gerçek arka planlarıyla birleştirilir — doğrudan ölçmek ekranda görünenden daha iyi bir oran bildirir.

Bu yüzden yazı renkleri seçilmez, türetilir: üretici, paletteki değeri bir başlangıç noktası alır ve inebileceği her yüzeyde eşiği geçene kadar açıklığını iter. Paleti değiştirin, kontrast onu izlesin. Kurallar ve arkalarındaki tuzaklar →

Denetimler, sürümler ve bu site

Tek bir giriş noktası bütün denetimleri çalıştırır; her parça diğerlerinin göremediği bir şeyi görür.

bash addons/gohud/tools/check_all.sh
DenetimNeyi yakalar
Dört ekran boyutunda run_tests.shWidget davranışı ve yerleşimi, RTL konumları, klavye odağı, çalışma anındaki kaplama kontrastı, her ön ayar
new_project_check.shBarındıran projeye gizli bağımlılıklar; --zip ile yayımlandığı haliyle sürüm, --export ile bir Web derlemesi
check_contrast.pyHer tema dosyasının WCAG kontrastı; düğme durumları ve yarı saydam paneller dahil
check_generated.py · check_scaffold.shÜretilen temalar paletleriyle uyuşuyor mu; kullan-at bir tema derleniyor ve kontrastı geçiyor mu
check_package.pypackage.json'dan alınan sürüm, değişiklik günlüğü taşımaları ve ZIP içeriği, geçici kopyalar üzerinde
check_site.pyBu sitenin bağlantıları, çapaları, sayfa dili, sözlüğü ve ayar tabloları
Kaydedilen son çalıştırma — 2026-09-13, Godot 4.7.2, macOS, Compatibility oluşturucu. Boş bir projede 390×844, 844×390, 768×1024 ve 1280×800 boyutlarında 438 denetimin 438'i; GoRuntime autoload ile yine 438'in 438'i; bir Web dışa aktarımı; altı temada sıfır kontrast hatası. Godot 4.6 ile fiziksel Android veya iOS cihazları bu çalıştırmaya dahil değildi.

Sürüm yayımlama

cat addons/gohud/package.json       # { "version": "1.1.0" }
bash addons/gohud/tools/package.sh  # 1.1.0 → builds/1.1.0/gohud-1.1.0.zip

Sürüm, package.json içinde yazan sürümdür; paketleme onu asla artırmaz. Yeni bir sürüm yayımlamak için önce o numarayı değiştirin. Başarılı bir çalıştırma plugin.cfg ve GoUi.VERSION değerlerini ona eşitler ve o sürüm ilk kez paketlendiğinde CHANGELOG.md içindeki Unreleased notlarını tarihli bir girdiye taşır. Aynı sürümü yeniden paketlemek ZIP'ini baştan oluşturur ve eskisinin yerine koyar. Başarısız bir çalıştırma hiçbir şeyi değiştirmez. ZIP; bu web sitesini, testleri, araçları ve package.json dosyasını dışarıda bırakır.

Bu site

python3 addons/gohud/tools/make_site.py            # sözlük ve kaplama ayarı tabloları, kaynaktan üretilir
python3 addons/gohud/tools/check_site.py           # bağlantılar, çapalar, dil, sözlük, üretilen tablolar
bash addons/gohud/tools/site_shots.sh /tmp/shots   # her sayfanın masaüstü ve telefon ekran görüntüleri

Sayfalar www/ içinde düz HTML'dir — kökte İngilizce, ko/ içinde Korece. Bir GitHub Actions iş akışı bu klasörü sitenin kökü olarak yayımlar.