In Yeniden kullanma kodu , game:GetService() yönteminin sık kullanımını fark etmiş olabilirsiniz.Roblox hizmetleri, deneyim içi öğelersatmak, sohbet etmek, ses çalmak, nesneleri anim etmek ve durumları yönetmek gibi motorun yerleşik özelliklerine erişmenizi sağlar.
Aslında, hizmetler Roblox gelişiminin en temel, yaygın modelinin ilk adımdır :
- Hizmetler alın.
- Modül kodları gerektirin.
- Yerel işlevler ekleyin.
- Bu işlevleri tetikleyen etkinlikleri ekleyin.
Örneğin, oyuncuların deneyiminizden çıktığında dünyadaki konumlarını kaydetmek isteyebilirsiniz:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Modül kriptinde yeniden kullanılabilir bir işlev çağıran yerel işlev.
local function saveProgress(character)
-- oyuncukarakterinin konumunu al.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Modül kodunda kaydetmeData işlevini kullanın, ki bu kod kaydedilir
-- Veri Depolama Servisi.
SaveManager.saveData(character, position)
end
-- Bir karakter kaldırıldığında saveProgress() çağıran diğer yerel işlev
-- deneyimden (bu durumda, oyuncu ayrıldığında).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Bir oyuncu ilk kez deneyime bağlandığında onPlayerAdded'i çağırır.
Players.PlayerAdded:Connect(onPlayerAdded)
Bazı önemli detaylar şunları içerir:
- Çünkü yalnızca senaryo başına bir hizmet almalısınız, anlaşma değişkenin hizmetle aynı adı vermektir.Bu konvansiyon modül kodlarına da uygulanır.
- Hizmetleri küresel değişken ile alırsınız game , veri modelinin köküne bir referans.
- Roblox, yükleme sırasında garantiler vermiyor (ve örnek akışı daha fazla, herhangi bir zamanda yüklenen ve yüklenmeyen şeyleri karmaşıklaştırıyor), bu yüzden örnek kullanımı önemli bir güvenlik önlemidir.
Standart kütüphaneleri, küresel işlevleri veya üçüncü taraf kütüphaneleri karşılaştırmak yerine, Roblox geliştirmenin büyük bir kısmı, aradığınız işlevleri deneyimlerinize eklemek için hangi çok, çok hizmetin yardımcı olabileceğini tanımlamaktır.Yukarıdaki örnekte, diske yazmak için standart bir I/O kütüphanesi kullanmak yerine, verileri depolamak için bulut hizmetlerini kullanın.
Konteyner hizmetleri
Konteyner hizmetleri diğer nesneleri içerebilir ve etkileyebilir.Bu konteyner hizmetleri veri modelinin kökünde bulunur ve Studio'nun Gezgini penceresinde görülebilir.Topluca, bu konteyner hizmetleri veri modeli için yapısal bir hiyerarşi oluşturur, böylece Roblox Motoru dünyadoğru bir şekilde yorumlayabilir ve görüntüleyebilir.Aşağıdaki tablo bazı yaygın konteyner hizmetlerini içerir.
Hizmet | Açıklama :--- | :--- Workspace | 3B dünyada görünen tüm nesneleri içerir, örneğin parçalar ve arazi. Lighting | Evrensel aydınlatma efektleri ayarlamak için nesneler içerir, örneğin Atmosphere ve Sky.ReplicatedStorage ve ReplicatedFirst | Sunucu ve istemci arasında yeniden yapılanan içeriği ve mantığı içerir.
Veri modelini daha da incelemek için, bu yöntemleri kullanabilirsiniz:
- game:FindService() belirtilen hizmetin örneğini arar.
- game:GetChildren() verilerin modelinin tüm kök çocuklarını bir dizi olarak döndürür, bu da üst düzey konteyner hizmetleridir.
- game:GetDescendants() tüm veri modelinin tüm yerineklerini ve tüm konteyner hizmetlerini ve çocuklarını içeren bir dizi döndürür.
Konteyner hizmetleri hakkında daha fazla bilgi için veri modeli dokümanına bakın.
Senaryo hizmetleri
Senaryo hizmetleri, senaryolar içinde çağırdığınız Roblox Motorunda standart işlevsellik sağlar.Aşağıdaki tablo bazı yaygın senaryo hizmetlerini içerir.
Hizmet | Açıklama :--- | :--- TweenService | Diğer örneklerin sayısal özelliklerini bir baştan sona değiştirmek için kullanılır, yön ve stil kolaylaştırma, tekrar ve gecikme için seçeneklerle. MarketplaceService | Oyuncuya bir geliştirici ürünü, abonelik veya oyun biletsatın almasını istemek gibi deneyim içi işlemlerden sorumlu hizmet, Roblox Premium'a yükseltilir, vb. ContextActionService | Kullanıcı girişini, bir tuş basışı, ekran dokunuşu veya kontrol düğmesi basışını kullanıcının bir arabaya girdiği ve çıktığı sırada yapılan kapsayıcı eylemlere bağlamanıza izin verir, örneğin kullanıcı bir arabaya girer ve çıkar.RunService | Çerçeveye göre zaman yönetimi için yöntemler ve olaylar ve deneyimin yürütüldüğü bağlamı (sunucu, istemci, Studio modu) kontrol etmek için de içerir.Her bir çalışma süresi veya güncelleme yapmak için herhangi bir süreç veya güncelleme için yararlı. | Sesin bir deneyimde nasıl oynandığının çeşitli küresel yönlerini kontrol eder, örneğin doppler ölçeği ve hacimsel ses.Ayrıca, aynı anda çok sayıda ses sinyalinin sese ve dinamik etki özelliklerini kontrol etmek için ses grupları da içerebilir.CollectionService | Sunucudan istemciye yansıyan etiketli durum gruplarını yönetir (koleksiyonlar), böylece ilgili durum gruplarına daha kolay atanabilir ve çalışabilirsiniz.
Bulut hizmetleri
Roblox ayrıca Roblox bulutunda gerçekleşen görevleri ve süreçleri yönetmek için özel bulut hizmetlerine sahiptir.Aşağıdaki tablo bazı yaygın bulut hizmetlerini içerir.
Hizmet | Açıklama :--- | :--- DataStoreService | Oturumlar arasında kalıcı verileri depolamak için.MemoryStoreService | Hızlı bir şekilde değişen sık ve geçici verilerin depolanması içinMessagingService | Canlı oturumlar sırasında çoklu sunucu arasında iletişim kurmak için.
Bulut hizmetlerinin de karşılık gelen web API'leri vardır; dışarıdan yazılan kodlardan veya araçlardan erişilebilirler. Daha fazla bilgi için bakın Bulutu Aç.