Każde miejsce jest reprezentowane przez model danych, hierarchię obiektów, które opisują wszystko o tym miejscu. Model danych zawiera wszystkie obiekty, które składają się na świat 3D, takie jak części, teren, oświetlenie i inne elementy środowiska. Zawiera również obiekty, które mogą kontrolować zachowanie czasu uruchomienia, takie jak skrypty, które zmieniają właściwości, wzywają metody i funkcje i reagują na wyd
Silnik Roblox używa modelu danych jako źródła prawdy dla stanu miejsce, więc może go symulować i renderować na urządzeniach klienta. Dla więcej informacji o tym, jak silnik Roblox interpretuje model danych, zobacz czas pracy klient-serwer.
Obiekty
Umieszcza i organizuje obiekty w modelu danych, aby opisać miejsce w Roblox. Każdy obiekt w Roblox dziedzicza się z klasy Instance, która określa ogólne właściwości, metody i wydarzenia, które są wspólne dla wszystkich obiektów. Ob
Dla kompleksowej listy wszystkich funkcji silnika Roblox, zobacz dokumentację referencyjną.
3D Bloki Budowania
BasePart jest podstawową klasą dla fizycznie symulowanych bloków budowlanych 3D w ś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 kierunek.
Obiekt | Opis |
---|---|
Part | Podstawowa część, która może przyjąć kształt bloku, kuli, cylindra, kąta lub kąta rogowego. |
MeshPart | Importowane mesze z 3D-materiałów modelujących, takich jak Maya lub Blender. |
TrussPart | Żelazna bela, którą postacie mogą wspiąć się jak drabina. |
Chociaż teoretycznie możesz stworzyć w pełni funkcjonalne doświadczenie Roblox z użyciem tylko podstawowych części, prawdopodobnie zaimportujesz mesze i połączysz podstawowe części w bardziej złożone obiekty i struktury poprzez modelowanie solids.
Skrypcje
Możesz dodać interaktywność i zachowanie światu 3D swojego miejscei zdefiniować zasady z użyciem skryptów. Piszę skrypcje w języku programowania Lua, 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 uruchomić skrypcje na serwerze, klientu lub mieć je komunikować poprzez
- Obiekt Script reprezentuje skrypt, które może być uruchomione tylko na serwerze.
- Obiekt LocalScript reprezentuje skrypt, które może być uruchomione tylko na klienta.
- Obiekt ModuleScript reprezentuje ponowny używalny skrypt, który możesz require() zarówno z serwerów, jak i z klientów.
Aby skrypty zachowywały się prawidłowo, musisz je umieścić w odpowiednich kontenerach w modelu danych. Aby uzyskać więcej informacji, zobacz sekcje Serwer i Klient.
Organizacja Obiektu
Podczas gdy masz wiele elastyczności w tym, jak organizujesz swój model danych, silnik Roblox oczekuje, że pewne obiekty znajdują się w pewnych usługach kontenerowych , które są obiektami, które mają zachowania i mogą wpływać na zachowania zachowań, które one zawierają. Główne kategorie usług kontenerowych obejmują:
- Praca - Workspace przechowuje wszystkie obiekty, które renderują w świecie 3D.
- Środowisko - Containery jak Lighting i SoundService, które zawierają obiekty dla ustawień i elementów środowiskowych.
- Replikacja - Container dla treści i logiki, która replikuje się między serwerem a klientem, takich jak ReplicatedStorage i ReplicatedFirst.
- Serwer - Container dla treści i logiki strony serwera, takich jak ServerScriptService i ServerStorage.
- Czat - Container dla obiektów, które włączają funkcje czatu, takie jak VoiceChatService i TextChatService.
Ponadto możesz dalej zorganizować swoje obiekty za pomocą następujących obiektów:
- Katalogi - A Folder jest dla celów organizacyjnych i nie określa żadnego zachowania. Na przykład możesz używać katalogów, aby grupować podobne obiekty, takie jak zestaw skryptów w serwerze.
- Modele - A Model jest głównie przeznaczony dla grupowań geometrycznych części, takich jak grupowanie zestawu biur, w tym krzesło, stół i lampę. Aby zorganizować bardziej złożone zestawy, możesz nawet zapisać modele w modelach.
Praca
Workspace zawiera wszystkie obiekty, z których składa się świat 3D miejsca. Możesz dodawać obiekty do pracownika, aby dostosować swój świat 3D, takie jak podstawowe części, części siatki i
Kamera
Camera określa, jak klient ogląda świat 3D. Domyślnie jest jedna kamera w przestrzeni roboczej, ale możesz dodać kilka obiektów kamery, aby stworzyć różne perspektywy i widoki. Każdy klient bierze te ustawienia i tworzy własną widok kamerki, którą serwer nie może bezpośrednio zmodyfikować.
Na przykład możesz ustawić kamerę, aby podążała za ruchami użytkownika lub pozostawała w określonej lokalizacji. Możesz również dostosować pola widzenia, odległość i kąt, aby stworzyć różne efekty wizualne tego, jak użytkownicy oglądają twoją 3D.
Dla więcej informacji, zobacz Dostosowywanie kamery.
Terytoria
Terrain pozwala na stworzenie krajobrazów dla twojego miejsce. Możesz zastosować materiał na teren, aby simulować pożądane środowiska naturalne, takie jak trawa, woda, piasek lub niestandardowy materiał. Mimo że możesz mieć tylko jeden obiekt terenu dla twojego świata 3D i zastosować jeden materiał na ten teren, możesz użyć
Dla więcej informacji, see Środowiskowy teren .
Środowisko
Efekty oświetleniowe i dźwiękowe mogą uczynić twoją 3D-world bardziej immersyjny i realistyczny. Chociaż nie jest konieczne dodawanie tych efektów do twojego miejsce, można je uczynić bardziej wizualnie i dźwiękowo atrakcyjne.
Oświetlenie
Lighting zawiera obiekty, które kontrolują globalne ustawienia oświetlenia twojego miejsce, takie jak Atmosphere do symulacji efektów atmosfery lub Sky do zmiany słońca, księżyca i gwiazd w twoich środowiskach.
Dla więcej informacji, see Oświetlenie .
Dźwięk
SoundService może kontrolować ustawienia Volume i Odtwarzania dla dzieci Sound obiektów dla muzyki tła lub efekty dźwiękowe środowiska.
Dla więcej informacji, see Dźwięk .
Replikacja
Replikacja to proces, w którym serwer synchronizuje stan Twojego miejsca z wszystkimi połączonymi klientami. Silnik Roblox replikuje w sposób inteligentny i automatyczny dane, fizykę i wiadomości czatu między serwerem a klientem w wielu przypadkach, ale możesz również określić niektóre obiekty do replikacji, umieszczając je w szczególnych kontenerach.
ReplicatedFirst
ReplicatedFirst zawiera obiekty, które chcesz sklonować na klienta, gdy dołączy do twojego miejsce. Zwykle zawiera obiekty niezbędne do inicjatyzowania gracza, takie jak obiekty strony klienta LocalScript i związane z nimi obiekty. Wszystkie treści w tym kontenerze są sklonowane z serwera na klienta tylko raz.
ReplicatedStorage
ReplicatedStorage zawiera obiekty, które są dostępne zarówno dla serwera, jak i połą
For more information on how replication works, see Client-Server Runtime .
Serwer
Model danych zdefiniował poświęcone pojemniki dla obiektów tylko strony serwera, które nigdy nie są replikowane na klienta. To umożliwia serwerowi wpływ na zachowanie i stan klienta bez ujawniania obiektów i logiki serwera dla klienta.
ServerScriptService
ServerScriptService zawiera Script obiekty, ModuleScript obiekty, które są wymagane przez serwerowe skrypciny, i inne obiekty związane z skryptami, które są przeznaczone tylko dla użytku serwera. Jeśli twoje skryпty wymagają
Przechowywanie serwera
ServerStorage zawiera obiekty przeznaczone tylko dla użytku serwera. Możesz użyć tego kontenera do przechowywania obiektów, które chcesz sklonować i zrodzic do przestrzeni roboczej lub innych kontenerów podczas uruchomienia. Na przykład możesz przechować duże obiekty takie jak mapy w tym kontenerze, aż będą potrzebne, a następnie przenieść je do przestrzeni roboczej tylko w
Klient
Usługi kontenera klienta są przeznaczone dla obiektów, które są replikowane na każdym połączonym klienta. Ta kategoria kontenerów replikuje na każdym połączonym klienta i zwykle zawiera obiekty 3D i związane obiekty LocalScript. Wszystkie obiekty, które przechowujesz w tych kontenerach, nie są trwałe między sesjami
Gdy klient połączy się z serwerem, usługa kontenerowa Players słucha użytkowników dołączających do twojego miejsca i tworzy obiekt Player dla każdego klienta. Serwer kopiuje obiekty z klientów z kontenerów w modelu danych edytowych do odpow
Edytuj model danych | Model danych czasu uruchomienia | Notatki |
---|---|---|
StarterPack | Gracz.Pakiet | Skrypy, które ustawiają ekwipunek gracza i generalnie zawierają Tool obiektów, ale często zawierają również lokalne skrypy. |
StarterGui | Player.PlayerGui | Skryпty, które mogą zarządzać lokalną interfejsą użytkownika. Gdy gracz się odrodzi, treści PlayerGui są puste. Serwer kopiuje obiekty wнутри StarterGui w PlayerGui. |
StarterPlayerScripts | Player.PlayerScripts | Skrypciki ogólnego celu dla klienta. Na przykład, jeśli chcesz stworzyć efekty specjalne na klienta, gdy spełnione zostaną pewne warunki, możesz umieścić lokalny skrypt w tym kontenerze, aby to zrobić. Serwer nie może uzyskać dostępu do tego kontenera. |
StarterCharacterScripts | Gracz.Charakter | Skrypty, które są kopiowane na klienta, gdy się pojawiają. Te skrypty nie trwają, gdy gracz respawnuje. |
ReplicatedFirst | Treści tego kontenera są replikowane do wszystkich klientów (ale nie do serwera) najpierw, przed czymkolwiek innym. |
Czat
TextChatService
TextChatService Reprezentuje usługę, która zarządza różnymi zadaniami czatu w doświadczeniu, takimi jak zarządzanie kanałami, dekorowanie wiadomości, filtrowanie tekstu, tworzenie komend i rozwój niestandardowych interfejsów czatu.
Dla więcej informacji, see System czatu tekstowego w czasie rzeczywistego doświadczenia .
VoiceChatService
VoiceChatService Reprezentuje funkcję czatu głosowego opartą na bliskości, która simuluje realistyczną komunikację w zależności od tego, jak blisko jesteś do innych użytkowników. Możesz użyć tego usługi, aby włączyć lub wyłączonefunkcję.
Dla więcej informacji, zobacz Czat głosowy.
Katalogi i Modele
Są dwa główne metody na grupowanie obiektów w modelu danych: katalogi i modele. Obie są Container dla obiektów, ale mają różne cele.
- Katalogi są najlepszym rozwiązaniem do przechowywania sekcji środowisko, takich jak lobby lub arenę walki.
- Modele służą do zestawów obiektów, takich jak zestaw biurko, który zawiera krzesło, stół i lampę. Aby zorganizować bardziej złożone zestawy, pakuj modele w modele.
Zawsze nazywaj swoje obiekty opisowo. To ułatwia znalezienie i modyfikację obiektów później, jeśli będzie to konieczne.