Roblox UI/UX Mimarisi: CanvasGroup, Akıcı Ölçekleme, Mobil Güvenli Alan & Çapraz Platform Düzen

2026-09-29 • DopaBrain Roblox UI/UX Mühendislik Ekibi • DopaBrain Engineering

Featured DopaBrain Interactive Tools

Kompakt bir akıllı telefonda, iPad'de, 1080p monitörde ve 4K TV'de net ve dengeli görünen bir Roblox arayüzü tasarlamak kritik bir mühendislik görevidir. Sabit piksel kullanımı butonların üst üste binmesine veya ekran dışına taşmasına yol açar.

Başarılı oyunlar duyarlı düzen mimarisi benimser. UDim2 Scale bağıl ölçekleme, AnchorPoint (0.5, 0.5) merkezleme, UIAspectRatioConstraint oran kilitleme, GuiService Safe Area telafisi ve CanvasGroup donanım hızlandırmalı render ile akıcı HUD'lar üretebilirsiniz.

1. Bağıl Ölçekleme: UDim2 Scale ve Offset Yönetimi

Roblox Studio duyarlı arayüz tasarımının temel taşları:

2. En-Boy Oranı Kilitleme ve AnchorPoint Geometrisi

Geniş ekranlarda arayüz bozulmalarını engelleme:

3. Mobil Safe Area ve Kamera Çentiği Telafisi

Akıllı telefon kamera delikleri ve gezinme çubuklarını yönetme:

ReplicatedStorage.UIFramework.ResponsiveContainer
-- En-Boy Oranı Kilitlemeli ve Güvenli Alan Destekli Duyarlı Kapsayıcı
local GuiService = game:GetService("GuiService")
local ResponsiveContainer = {}
ResponsiveContainer.__index = ResponsiveContainer

function ResponsiveContainer.new(parentScreenGui, config)
    local self = setmetatable({}, ResponsiveContainer)
    
    local rootFrame = Instance.new("Frame")
    rootFrame.Name = config.Name or "ResponsiveRoot"
    rootFrame.AnchorPoint = Vector2.new(0.5, 0.5)
    rootFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
    rootFrame.Size = config.Size or UDim2.new(0.8, 0, 0.8, 0)
    rootFrame.BackgroundTransparency = 1
    rootFrame.Parent = parentScreenGui
    
    if config.AspectRatio then
        local ratioConstraint = Instance.new("UIAspectRatioConstraint")
        ratioConstraint.AspectRatio = config.AspectRatio
        ratioConstraint.AspectType = Enum.AspectType.ScaleWithParentSize
        ratioConstraint.DominantAxis = config.DominantAxis or Enum.DominantAxis.Width
        ratioConstraint.Parent = rootFrame
    end
    
    local sizeConstraint = Instance.new("UISizeConstraint")
    sizeConstraint.MinSize = config.MinSize or Vector2.new(300, 200)
    sizeConstraint.MaxSize = config.MaxSize or Vector2.new(1920, 1080)
    sizeConstraint.Parent = rootFrame
    
    self.Frame = rootFrame
    return self
end

return ResponsiveContainer

4. CanvasGroup Performansı ve Toplu Çizim

Düşük segment mobil cihazlarda karmaşık menüleri optimize etme:

5. Oyun Kolu ve Dokunmatik Kontrol Ergonomisi

Konsollar ve dokunmatik ekranlar için evrensel kontrol tasarımı:

Frequently Asked Questions

Arayüzüm 4K ekranda neden çok küçük, telefonda neden devasa görünüyor?

Boyutlandırmada sabit pikseller (Offset) kullanıldığı için. Ekran boyutuna oranlanan Scale (0.0-1.0) kullanımı arayüzün her çözünürlükte orantılı kalmasını sağlar.

UIAspectRatioConstraint butonların bozulmasını nasıl önler?

Genişlik ve yükseklik oranını sabit tutarak (ör. kare için 1.0) butonların geniş ekranlarda yayılmasını engeller.

Normal Frame yerine CanvasGroup kullanmanın temel avantajı nedir?

Tüm alt ögeleri tek bir GPU dokusunda önbelleğe alarak GroupTransparency animasyonlarını tek bir draw call ile pürüzsüzce gerçekleştirir.

iPhone kamera çentiğinin butonları kapatması nasıl önlenir?

ScreenGui özelliklerinden ScreenInsets ayarını DeviceSafeInsets yaparak arayüzün çentik dışındaki güvenli bölgeye yerleşmesini sağlayabilirsiniz.

Mobil oyuncular için önerilen en küçük buton boyutu nedir?

Doğru dokunma ve konforlu oynanış için en az 44x44 piksellik etkileşim alanı önerilir.

Explore More Interactive Tests & Guides

Discover personalized cognitive assessments, stress evaluations, and game psychology tools on DopaBrain.

Go to Portal Hub