Roblox oturumlarının çoğunluğu mobil cihazlarda oynanıyor, bu yüzden geniş bir kitle için oyun tasarlarken mobil cihaz yönlendirmesi ve diğer çoklu platform faktörlerini dikkate almak önemlidir.
Çoklu platform girişlerini, oyuncuların sanal düğmelerle etkileşimini de içerecek şekilde basit hale getirmek için, Roblox hareketler olarak "zıplama", "koşma" veya "ateş etme" gibi eylemleri tanımlamak ve bu eylemleri gerçekleştirmek için birden fazla donanım girişi için bağlantılar kurmak amacıyla Giriş Eylem Sistemi sağlar.
Roblox ayrıca titreşim geri bildirim, TouchSwipe ve TouchPinch gibi dokunma hareketleri veya AccelerometerEnabled ve GyroscopeEnabled cihazlarındaki ivmeölçer ve jiroskop fonksiyonelliği gibi yerel mobil özellikleri destekler.
Giriş türü tespiti
Çoklu platform geliştirmede, oyuncunun kullandığı PreferredInput türünü belirlemek ve buna yanıt vermek önemlidir; bu genellikle ekrandaki düğmeler ve menüler gibi Kullanıcı Arayüzü öğeleri için etkileşimi düzgün bir şekilde desteklemek içindir.
Örneğin, dokunma destekli bir cihaz dokunmayı varsayılan giriş olarak kabul eder ve eylemler için dokunmatik düğmelerin görünebileceğini varsayar, ancak bir oyuncu bir bluetooth gamepad bağlamayı seçebilir. Bu durumda, dokunma geçerli bir giriş kalır, ancak oyuncunun bağlı gamepad'i birincil giriş türü olarak değiştirmek istediğini varsayabilirsiniz ve muhtemelen ekran UI'si için dokunmayı yedek giriş olarak kullanabilirsiniz.
Daha fazla bilgi için giriş türü tespiti bölümüne bakın.
Cihaz yönlendirmesi
Varsayılan olarak, Roblox oyunları yatay modda çalışır ve oyuncunun cihazı döndüğünde oyunun yatay "sol" ve yatay "sağ" arasında geçiş yapmasına izin verir. Ancak, istenirse oyun belirli bir yönlendirmeye kilitlenebilir.
İki sensör tabanlı mod ve üç kilitli mod dahil olmak üzere beş farklı yönlendirme modu vardır.¹ Bunların her biri, Studio'nun Özellikler penceresinden erişilebilen StarterGui.ScreenOrientation aracılığıyla varsayılan yönlendirme olarak ayarlanabilir.
| Sensör Modları | |
|---|---|
| LandscapeSensor | Oyunun her zaman yatay modda göründüğü (dikey mod yok) ve cihazın fiziksel yönünü algılayarak oyunun görünümünün her zaman yukarıya doğru yönlendirilmesini sağladığı varsayılan Roblox ayarıdır. |
| Sensor | Cihaz fiziksel yönünü algılarak oyunun görünümünün her zaman yukarıya doğru yönlendirilmesini sağlamakta, gerektiğinde yatay ve dikey mod arasında geçiş yapmaktadır. |
| Kilitli Modlar | |
| LandscapeLeft | Sanallaştırılmış bir ana/içerik çubuğu olan cihazlarda, dokunma bölgesi ekranın alt kısmındadır. Fiziksel bir ana buton olan cihazlarda, ana buton ekranın solundadır. |
| LandscapeRight | Sanallaştırılmış bir ana/içerik çubuğu olan cihazlarda, dokunma bölgesi ekranın alt kısmındadır. Fiziksel bir ana buton olan cihazlarda, ana buton ekranın sağındadır. |
| Portrait | Sanallaştırılmış bir ana/içerik çubuğu olan cihazlarda, dokunma bölgesi ekranın alt kısmındadır. Fiziksel bir ana buton olan cihazlarda, ana buton ekranın altındadır. |
Varsayılan StarterGui.ScreenOrientation özelliğinin ötesinde, oyun sırasında yönlendirmeyi PlayerGui.ScreenOrientation aracılığıyla değiştirebilirsiniz. Bu, bir oyunun bir yönlendirmeyi gerektiğinde dayatması gerektiği durumlarda yararlı olabilir; örneğin, bir mini oyun için görünümü Portrait olarak kilitlemek.
Aşağıdaki kod, bir LocalScript içinde kısa bir gecikmeden sonra ekran yönlendirmesini dikey olarak ayarlar:
LocalScript - Ekran Yönlendirmesini Dikey Olarak Değiştirlocal Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuitask.wait(5)playerGui.ScreenOrientation = Enum.ScreenOrientation.Portrait
Son olarak, oyun sırasında ekran yönlendirma değişikliklerini PlayerGui.CurrentScreenOrientation özelliğindeki değer değişikliklerini dinleyerek tespit edebilirsiniz.
LocalScript - Ekran Yönlendirme Değişikliklerini Tespit Et
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local function onOrientationChange()
print("Yönlendirme değişti:", playerGui.ScreenOrientation)
end
playerGui:GetPropertyChangedSignal("ScreenOrientation"):Connect(onOrientationChange)
Titreşim geri bildirimi
Çoğu mobil cihazda, titreşim geri bildirimi sağlamak için dahili motorlar bulunmaktadır. Sarsıntı ve titreşimler ek bir oyuncu deneyimi sunabilir ve görsel veya sesli geri bildirimden öte ince geri bildirimler sağlayabilir.
Roblox, çoğu iPhone, Pixel ve Samsung Galaxy cihazları dahil olmak üzere, titreşim destekli cihazlar için titreşim geri bildirimini destekler. Titreşim geri bildirimi, belirli bir Type ayarı olan HapticEffect örnekleri aracılığıyla yönetilir; bu ayarlar arasında GameplayCollision veya UIClick yer alabilir.
Bir HapticEffect kurulduktan sonra, bunu Play() yöntemi aracılığıyla başlatabilirsiniz; örneğin:
local Workspace = game:GetService("Workspace")local effect = Instance.new("HapticEffect")effect.Type = Enum.HapticEffectType.GameplayExplosioneffect.Parent = Workspace-- Titreşim efektini oynateffect:Play()