Model danych

*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.

Każde miejsce jest reprezentowane przez model danych, hierarchię obiektów, które opisują wszystko o miejscu.Model danych zawiera wszystkie obiekty, które tworzą świat 3D, takie jak części, teren, oświetlenie i inne elementy środowiska.Zawiera również obiekty, które mogą kontrolować zachowanie czasu wykonania, takie jak skrypty modyfikujące właściwości, wezwanie metod i funkcji oraz reagowanie na wydarzenia, które umożliwiają dynamiczne zachowanie i interakcję.

Silnik Roblox wykorzystuje model danych jako źródło prawdy dla stanu miejsce, więc może je symulować i renderować na urządzeniach klienta.Aby uzyskać więcej informacji o tym, jak silnik Roblox interpretuje model danych, zobacz czas wykonania klient-serwer.

Obiekty

Umieszczasz i organizujesz obiekty w modelu danych, aby opisać miejsce w Roblox.Każdy obiekt w Roblox dziedziczy od klasy Instance, która definiuje ogólne właściwości, metody i wydarzenia, które są wspólne dla wszystkich obiektów.Obiekty również określają własne cechy w zależności od funkcjonalności, jaką zapewnia obiekt.Istnieje wiele kategorii obiektów z szeroką gamą zastosowań, ale często będziesz pracować z obiektami BasePart i LuaSourceContainer, zwanymi powszechnie częściami i skryptami.

Aby uzyskać kompletną listę wszystkich funkcji silnika Roblox, zobacz dokumentację referencyjną przeglądową.

3D bloki budowlane

BasePart jest podstawową klasą dla fizycznie symulowanych bloków budowlanych 3D na świecie.Definiuje właściwości i metody wspólne dla wszystkich fizycznych obiektów z właściwościami takimi jak pozycja, rozmiar i orientacja.

ObiektOpis
PartPrymitywna część primitiva, która może przybrać kształt bloku, kuli, cylindra, klinu lub kątowego klinu.
MeshPartImportowana siatka z oprogramowania do modelowania 3D, takiego jak Maya lub Blender.
TrussPartBelka kratowa, którą postacie mogą wspinać się jak drabinę.

Chociaż teoretycznie możesz stworzyć w pełni funkcjonalne doświadczenie Roblox za pomocą tylko prostych części, najprawdopodobniej importujesz siatki i łączysz proste części w bardziej złożone obiekty i struktury za pomocą modelowania solidnego.

Skrypty

Możesz dodać interaktywność i zachowanie do świata 3D swojego miejscei zdefiniować logikę za pomocą skryptów.Piszesz skrypty w języku programowania Luau, aby robić rzeczy takie jak przesuwanie części, wzywanie innych skryptów i reagowanie na wydarzenia.Ponieważ Roblox działa w modelu klient-serwer, możesz uruchamiać skrypty na serwerze, klientzie lub mieć je komunikować się przez granicę sieci.

  • Przedmiot Script reprezentuje skrypt, który może działać tylko na serwerze.
  • Przedmiot LocalScript reprezentuje skrypt, który może działać tylko na klientzie.
  • Przedmiot ModuleScript reprezentuje powtarzalny skrypt, który możesz require() odzyskać zarówno z kodu serwera, jak i klienta.

Aby skrypty poprawnie się zachowywały, musisz umieścić je w poprawnych pojemnikach w modelu danych.Aby uzyskać więcej informacji, zobacz sekcje Serwer i Klient.

Organizacja obiektu

Chociaż masz dużo elastyczności w sposobie organizacji modelu danych, silnik Roblox oczekuje, że pewne obiekty będą w pewnych usługach kontenerowych , które są obiektami o określonych zachowaniach i mogą wpływać na zachowania obiektów, które zawierają.Główne kategorie usług kontenerowych obejmują:

Ponadto możesz dalej zorganizować swoje obiekty za pomocą następujących obiektów:

  • Katalogi - A Folder służy do celów organizacyjnych i nie definiuje żadnego zachowania.Na przykład możesz używać folderów, aby grupować podobne obiekty, takie jak zbiór skryptów w magazynie serwera.
  • Modele - A Model jest głównie przeznaczony do grupowania geometrycznych części, takich jak grupowanie zestawu biurkowego, który zawiera krzesło, stół i lampę.Aby zorganizować bardziej złożone zestawy, możesz nawet włożyć modele w modele.

Przestrzeń robocza

Workspace zawiera wszystkie obiekty, które tworzą świat 3D miejsce.Możesz dodać obiekty do przestrzeni roboczej, aby dostosować swój świat 3D, takie jak części bazowe, części siatkowe i modele.Klienci renderują wszystko, co pojawia się w tym pojemniku, i nic poza nim, więc możesz kontrolować to, co użytkownicy widzą i z nim interakują w twoim miejsce.Chociaż nie są one rzeczywiście renderowane, możesz również dodać skrypty, które są powiązane z częściami i modelami, z którymi są związane.Domyślnie przestrzeń robocza jest wypełniona przedmiotem Terrain i Camera.

Kamera

Camera określa, jak klient widzi świat 3D.Domyślnie w przestrzeni roboczej jest jedna kamera, ale możesz dodać wiele obiektów kamery do tworzenia różnych perspektyw i widoków.Każdy klient bierze te ustawienia i tworzy własny widok kamery, który serwer nie może bezpośrednio modyfikować.

Na przykład możesz skonfigurować kamerę, aby śledziła ruchy użytkownika lub pozostała stała w określonej lokalizacji.Możesz również dostosować pole widzenia, odległość i kąt, aby stworzyć różne efekty wizualne, jak użytkownicy widzą twój świat 3D.

Dla więcej informacji, zobacz Dostosuj kamerę.

Teren

Terrain pozwala ci tworzyć krajobrazy dla twojego miejsce.Możesz zastosować materiał na teren, aby symulować pożądane środowiska naturalne, takie jak trawa, woda, piasek lub niestandardowy materiał.Chociaż możesz mieć tylko jeden obiekt terenu dla swojego świata 3D i zastosować jeden materiał do tego terenu, możesz użyć edytora terenu, aby edytować regiony twojego terenu.

Aby uzyskać więcej informacji, zobacz teren środowiskowy.

Środowisko

Efekty oświetlenia i dźwięku mogą uczynić twój świat 3D o wiele bardziej wciągającym i realistycznym.Chociaż nie jest konieczne dodawanie tych efektów do twojego miejsce, mogą sprawić, że będzie bardziej atrakcyjny wizualnie i akustycznie.

Oświetlenie

Lighting zawiera obiekty, które kontrolują globalne ustawienia oświetlenia twojego miejsce, takie jak Atmosphere do symulacji efektów atmosferycznych lub Sky do zmiany słońca, księżyca i gwiazd w twoich środowiskach.

Aby uzyskać więcej informacji, zobacz Oświetlenie.

Dźwięk

SoundService może kontrolować ustawienia głośności i odtwarzania dziecięcych obiektów Sound dla muzyki w tle lub efektów dźwięku środowiskowego.

Aby uzyskać więcej informacji, zobacz Dźwięk.

Replikacja

Replikacja to proces, w którym serwer synchronizuje stan twojego miejsca z wszystkimi połączonymi klientami.Silnik Roblox inteligentnie i automatycznie replikuje dane, fizykę i wiadomości czatu między serwerem a klientem w wielu przypadkach, ale możesz również określić pewne obiekty do replikacji, umieszczając je w określonych pojemnikach.

Powtórzony po raz pierwszy

ReplicatedFirst zawiera obiekty, które chcesz replikować do klienta, gdy dołączy do twojego miejsce.Zazwyczaj zawiera obiekty, które są niezbędne do uruchomienia gracza, takie jak obiekty strony klienta LocalScript i obiekty związane ze skryptami.Całe zawartość w tym pojemniku jest replikowana z serwera do klienta tylko raz.

Przechowywanie powtórzone

ReplicatedStorage zawiera obiekty dostępne zarówno dla serwera, jak i połączonych klientów.Wszelkie zmiany, które wystąpią na klientzie, utrzymują się, ale nie zostaną replikowane na serwerze.Serwer może zastąpić zmiany na klientzie, aby zachować spójność.Ten kontener jest zwykle używany do ModuleScript obiektów, które muszą być udostępnione i uzyskiwane przez obiekty Script (stronowe) i LocalScript (stronowe) klienta.Ponadto możesz użyć tego kontenera, aby odtworzyć dowolne obiekty, które nie muszą istnieć w świecie 3D, dopóki nie będą potrzebne, takie jak ParticleEmitter do klonowania i rodzicielstwa dla wszystkich otrzymanych modeli postaci.

Aby uzyskać więcej informacji o tym, jak działa replikacja, zobacz czas wykonania klient-serwer.

Serwer

Model danych definiuje poświęcone kontenery tylko dla obiektów strony serwera, które nigdy nie są replikowane do klienta.Umożliwia to serwerowi wpływanie na zachowanie i stan klienta bez ujawniania obiektów i logiki serwera klientowi.

Serwis skryptów serwera

ServerScriptService zawiera Script obiekty, ModuleScript obiekty wymagane przez skrypty serwera oraz inne obiekty związane ze skryptowaniem, które są przeznaczone wyłącznie do użytku na serwerze.Jeśli twoje skrypty wymagają innych, nieskryptowanych obiektów, musisz je umieścić w ServerStorage .Skrypty w tym pojemniku nigdy nie są replikowane do klientów, co pozwala na posiadanie bezpiecznej logiki po stronie serwera.

Przechowywanie serwera

ServerStorage zawiera obiekty przeznaczone wyłącznie do użytku na serwerze.Możesz użyć tego kontenera do przechowywania obiektów, które chcesz klonować i przypisać do przestrzeni roboczej lub innych kontenerów podczas uruchamiania.Na przykład możesz przechowywać duże obiekty, takie jak mapy, w tym pojemniku, dopóki nie będą potrzebne, a następnie przenieść je do przestrzeni roboczej tylko wtedy, gdy jest to wymagane Pozwala to zmniejszyć ruch sieciowy klienta podczas pierwszego dołączenia.

Klienci

Usługi kontenerów klienta są przeznaczone dla obiektów, które są replikowane do każdego połączonego klienta.Ta kategoria kontenerów replikuje się do każdego połączonego klienta i zwykle zawiera obiekty 3D i powiązane obiekty LocalScript.Wszystkie obiekty przechowywane w tych kontenerach nie są trwałe między sesjami i są zresetowywane za każdym razem, gdy klient ponownie się dołącza.Możesz umieścić przedmioty w tych pojemnikach, takie jak interfejsy użytkownika gracza, skrypty strony klienta i inne przedmioty, które są odpowiednie tylko dla klienta.

Kiedy klient połącza się z serwerem, usługa kontenera Players słucha użytkowników dołączających do twojego miejsca i tworzy obiekt Player dla każdego klienta.Serwer kopiuje obiekty z kontenerów klienta w modelu danych edytowanych do odpowiedniej lokalizacji w modelu danych wykonawczych w obiekcie Players.Poniższa tabela opisuje oryginalny pojemnik, na którym ona się znajduje w kontenerze, oraz rezultujący pojemnik, do którego są kopiowane na klientze:

Edytuj model danychModel danych czasu wykonaniaNotatki
StarterPackGracz.PlecakSkrypty, które konfigurują ekwipunek gracza i ogólnie zawierają Tool przedmioty, ale często zawierają również lokalne skrypty.
StarterGuiGracz.Gui graczaSkrypty, które mogą zarządzać lokalnym interfejsem użytkownika gracza.Gdy gracz odrodzi się, zawartość PlayerGui zostanie opróżniona.Serwer kopiuje obiekty wewnątrz StarterGui do PlayerGui.
StarterPlayerScriptsGracz.Skrypty graczaOgólne skrypty celowe dla klienta.Na przykład, jeśli chcesz stworzyć specjalne efekty na klientach, gdy spełnione zostaną określone warunki, możesz umieścić lokalny skrypt w tym pojemniku, aby to zrobić.Serwer nie może uzyskać dostępu do tego kontenera.
StarterCharacterScriptsGracz.PostaćSkrypty, które są kopiowane na klienta, gdy się pojawiają. Te skrypty nie utrzymują się, gdy gracz odrodzi się.
ReplicatedFirstTreść tego kontenera jest replikowana do wszystkich klientów (ale nie z powrotem do serwera) najpierw, przed czymkolwiek innym.

Czat

Usługa czatu tekstowego

TextChatService reprezentuje usługę, która obsługuje różne zadania czatu tekstowego w doświadczeniu, takie jak zarządzanie kanałami, dekorowanie wiadomości, filtrowanie tekstu, tworzenie poleceń i rozwijanie interfejsów czatów niestandardowych.

Aby uzyskać więcej informacji, zobacz system czatu tekstowego w doświadczeniu.

Usługa czatu głosowego

VoiceChatService reprezentuje funkcję czatu głosowego opartą na zasięgu, która symuluje realistyczną komunikację w oparciu o to, jak blisko jesteś do innych użytkowników.Możesz użyć tej usługi, aby przełączyć funkcję włączoną i wyłączone.

Aby uzyskać więcej informacji, zobacz czat głosowy.

Katalogi i modele

Istnieją dwie główne metody grupowania obiektów w modelu danych: foldery i modele .Oba są kontenerami dla obiektów, ale mają różne cele.

  • Katalogi są najlepsze do przechowywania sekcji środowisko, takich jak lobby lub arena walki.
  • Modele są używane do zestawów obiektów, takich jak zestaw biurkowy, który zawiera krzesło, stół i lampę.Aby zorganizować bardziej złożone zestawy, włóż modele w gniazda w modelach.

Powinieneś zawsze nazywać swoje obiekty opisowo. Ułatwia to później znalezienie i modyfikowanie obiektów, jeśli jest to potrzebne.

The Explorer window with a demonstration of a folder organization structure.
Obiekty zorganizowane w Folders
The Explorer window with a demonstration of a model organization structure in several services.
Różne modele "mapy", które można wymienić między Workspace i ServerStorage