Usługi

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

W ponownym użyciu kodu można zauważyć częste używanie metody game:GetService(). Usługi Roblox pozwalają na dostęp do zbudowanych funkcji silnika, takich jak sprzedaż przedmioty w projekciew doświadczeniu, włączanie czatu, odtwarzanie dźwięków, animowanie obiektów i zarządzanie instancjami.

W rzeczywistości usługi są pierwszym krokiem w najbardziej podstawowym, wspólnym wzorem rozwoju Roblox :

  1. Zdobądź usługi.
  2. Wymagają skrypty modułu.
  3. Dodaj lokalne funkcje.
  4. Dodaj wydarzenia, które uruchomują te funkcje.

Na przykład, możesz chcieć zapisać pozycje graczy w świecie, gdy wyjdą z Twojego doświadczenia:


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Lokalna funkcja, która wzywa funkcję ponownego użycia w skrypcie modułu.
local function saveProgress(character)
-- Zdobądź pozycję postaci gracza.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Użyj funkcji saveData w skrypcie modułu, która zapisuje
-- DataStoreService.
SaveManager.saveData(character, position)
end
-- Kolejna lokalna funkcja, która wzywa saveProgress() gdy postać jest usunięta
-- z doświadczenia (w tym przypadku, gdy gracz opuści).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Wyzwala naPlayerAdded, gdy gracz po raz pierwszy połączy się z doświadczeniem.
Players.PlayerAdded:Connect(onPlayerAdded)

Niektóre kluczowe szczegóły obejmują:

  • Ponieważ powinieneś odzyskać usługę tylko raz na skrypt, to należy użyć konwencji, aby dać zmiennemu nazwę usługi. Ta konwencja dotyczy również skrypt modułowych.
  • Odzyskujesz usługi za pomocą globalnej zmiennej game, odniesienia do korzenia modelu danych.
  • Roblox nie daje gwarancji wokół porządku ładowania (i streamingu instancji dalej skomplikowuje to, co jest i nie jest ładowane w dowolnym momencie), więc użycie Instance:WaitForChild() jest ważnym środkiem bezpieczeństwa.

Zamiast porównywać normalne biblioteki, funkcje i zmienne globalne, lub biblioteki stron trzecich, dużą część rozwoju Roblox jest identyfikowanie, które z wielu, wielu usług może pomóc Ci dodać pożądane funkcje do swoich doświadczeń. W przykładzie powyżej, zamiast używać standardowej biblioteki I/O do zapisu na dysku,

Usługi Container

Usługi kontenerowe mogą zawierać i wpływać na inne obiekty. Te usługi kontenerowe mieszkają w korzeniu modelu danych i są widoczne w oknie Explorer Studio. W grupach, te usługi kontenerowe tworzą zstrukturyzowaną hierarchię dla modelu danych, aby silnik Roblox mógł poprawnie interpretować i renderować twoje miejsce. Poniższy tabela zawiera niektóre z popularnych usług kontenerowych.

Service | Description :--- | :--- Workspace | Contains all objects that render in the 3D world, such as parts and terrain. Lighting | Contains objects for setting universal lighting effects, such as Atmosphere and

Aby dalej zbadać model danych, możesz użyć tych metod:

  • game:FindService() szuka instancji określonego usługi.
  • game:GetChildren() w zwrocie wszystkie dzieci modelu danych, które są najwyższym poziomem usług kontenerowych.
  • game:GetDescendants() zwraca arkusz wszystkich potomnych modelu danych, w tym wszystkie usługi kontenerowe i ich dzieci.

Dla więcej informacji na temat usług kontenerowych, zobacz dokumentację modelu danych.

Sługi Skryptowe

Usługi scriptingu dostarczają standardową funkcjonalność w silniku Roblox, którą nazywasz w skryptach. Poniższy tabela zawiera niektóre z popularnych usług scriptingu.

Ser

Usługi chmurowe

Roblox ma również specjalne usługi chmurkowe do zarządzania zadaniami i procesami, które mają miejsce w chmurze Roblox. Poniższy tableau zawiera niektóre z popularnych usług chmurkowych.

Serwer | Opis :--- | :--- DataStoreService | Dla przechowywania trwałych danych między sesjami. MemoryStoreService | Dla przechowywania częstych i ephemeralnych danych, które szybko zmieniają się. MessagingService | Komunikuj się między serwerami podczas sesji na żywo.

Usługi chmurowe mają również odpowiadające API sieciowe; można do nich uzyskać z zewnętrznych skryptów lub narzędzi. Aby uzyskać więcej informacji, zobacz otwarty chmurę.