Workspace
*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.
Głównym
Zrozumienie tego zachowania jest ważne, ponieważ oznacza, że obiekty można usunąć z Pracownika , gdy nie są potrzebne. Na przykład, mapa Models może zostać usunięta z Workspace, gdy inna mapa jest odt
W swojej roli jako właściciela aktywnych obiektów 3D, Workspace włącza wiele przydatnych funkcji związanych z częściami, ich pozycjami i łączeniami między nimi.
Dostęp do Workspace
Workspace można uzyskać dostęp do niego na kilka sposobów, wszystkie z których są poprawne.
- workspace
- game.Workspace
- game:GetService("Workspace")
Notatki
- Obiekty, które wymagają ozdoby, takie jak ParticleEmitters i BillboardGuis, będą mieć pozycję 0, 0, 0, gdy są związane z Workspace bez ustawienia adornamentu.
- Mетоды Class.Model:MakeJoints() i Class.Model:BreakJoints() dziedziczone z klasy Class.Model są przypisane przez 1>Class.Workspace:MakeJoints() i 4>Class.Workspace:BreakJoints() , które można używać tylko w wtyczkach.
- Nie jest możliwe usunięcie Workspace .
- Obiekt Camera klienta można uzyskać za pośrednictwem właściwości Workspace.CurrentCamera.
- Obiekt Terrain można uzyskać dostęp do niego za pomocą właściwości Workspace.Terrain.
Podsumowanie
Właściwości
Gęstość powietrza na poziomie ziemi, używana w modelu sił aerodynamicznych.
Określa, czy zasoby stworzone przez innych użytkowników mogą być sprzedane w gra.
Określa tryb ograniczania animacji dla lokalnego klienta.
Obiekt Camera używany przez lokalnego gracza.
Czas, w sekundach, że gra działa.
Określa wysokość, w której BaseParts i ich przodkowie Models są usuwani z Workspace.
Określa, czy silnik fizyczny oblicza siły aerodynamiczne na BaseParts , których właściwość EnableFluidForces jest prawdziwa.
Określa globalny wiatr wektor dla animowanej trawy, chmur i cząsteczek.
Określa przyspieszenie z powodu grawitacji zastosowanej do spadającego BaseParts .
Włącza wsparcie dla ograniczeń dla IKControls. Jeśli jest wyłączone, IKControls ignoruje ograniczenia fizyczne.
Ustawia, czy głowy i akcesoria postaci powinny być załadowane jako MeshParts.
Kontroluje zachowanie używane do wyboru części korzenia zestawienia, gdy używa się dowolnego z ograniczeń movera.
Określa, jak rozwiązanie przesuwa się do przodu w czasie symulacji fizycznej.
Konfiguruje czas powrotu silnika do zdarzeń.
Konfiguruje sposób, w jaki silnik decyduje, kiedy przesłać treści dalej od graczy.
Czy włączone jest przesyłanie treści dla miejsce.
Określa, czy StreamingIntegrityMode jest aktywny.
Minimalna odległość, w której treści będzie przesyłana do graczy z wysokim priorytetem.
Maksymalna odległość, do której treści będą przesyłane do odbiorców.
Określa, czy parts w różnych grupach ustawionych na niekolidowanie ignoruje kolidy i ewenty dotykające dotyku.
Ustawia poziom szczegółowości na modelu dla doświadczeń z włączonym przesyłaniem instancji.
Kontroluje zachowanie przesyłania modelu na Models , gdy jest włączone przesyłanie instancji.
Główna część Model lub nil jeśli nie jest wyraźnie ustawiać.
Własność tylko dla edytora używana do skalowania modelu wokół jego osi. Ustawienie tej własności przeniesie skalę, tak jakby Model/ScaleTo zostało na nią wezwane.
Określa, gdzie pivot a Model , który nie ma nie ma zestawu Model.PrimaryPart jest położony.
Metody
Wyświetla liczbę BaseParts, które uznane za aktywne fizycznie, z powodu bycia niedawno pod wpływem fizyki.
Zwraca liczbę, pomiędzy 0 i 100, reprezentującą procentowy czas rzeczywisty, który jest obecnie ograniczany przez simulację fizyczną.
Wyświetla liczbę klatkowe prostej, w której jest obecnie symulowana fizyka.
Zwraca czas epoki serwera w sekundach.
Tworzy połączenia między Parts i dowolnymi dotykającymi częściami w zależności od powierzchni części i trybu łączenia określonego.
Wróщает prawdę, jeśli w grze jest włączony rozwiązaтель PGS Physics.
Pozycje i skalowanie Workspace.CurrentCamera aby pokazać stopień BaseParts obecnie w Workspace .
Wyświetla prawdę, jeśli którekolwiek z danych BasePart dotyka innych części.
Rzuca blokową formę w określonym kierunku i zwraca RaycastResult jeśli blok dotyka BasePart lub Terrain komórki.
Zwraca arkusz listy zawierający granice pudełka.
Zwraca arkusz listy zawierający szeregi z których szeregi pojawiają się w określonej kuli.
Zwraca maszynę wielkością, która jest dzielona z podaną częścią.
- IKMoveTo(part : BasePart,target : CFrame,translateStiffness : number,rotateStiffness : number,collisionsMode : Enum.IKCollisionsMode):void
Przesuwa określoną część w określonym położeniu za pomocą odwrotnej kinematyki, zamiast przenieść ją bezpośrednio, aby zapewnić, że wszystkie połączenia, ograniczenia lub kolizje, w których uczestniczy, pozostaną fizycznie zaspokojone.
Rozprzestrzenia promień używając orygina, kierunku i opcjonalnego RaycastParams , a następnie zwraca RaycastResult jeśli kompatybilny obiekt lub teren przecina promień.
- Spherecast(position : Vector3,radius : number,direction : Vector3,params : RaycastParams):RaycastResult?
Rzuca kulszą w określonym kierunku i zwraca RaycastResult jeśli kształt dotyka BasePart lub Terrain komórki.
Przyspiesza symulację dla części w świecie w oparciu o określony czas odchylenia i opcjonalny zestaw BaseParts .
Ustawia ten model na trwały dla określonego gracza. Model.ModelStreamingMode musi być ustawiony na PersistentPerPlayer , aby zachować zachowanie w wyniku dodania.
Opisuje poziom, który zawiera wszystkie części Modelu.
Zwraca rozmiar najmniejszego pola granicznego, które zawiera wszystkie BaseParts w Model, zgodnie z Model.PrimaryPart ustawionym, jeśli jest ustawiać.
Wróщает wszystkie obiekty Player, które ten obiekt modelu jest trwały. Zachowanie się zmienia w zależności od tego, czy ten metodowy jest wezwany z Script lub LocalScript.
Zwraca skalę kanoniczną modelu, która domyślnie wynosi 1 dla nowo utworzonych modeli i będzie się zmieniać w miarę skalowania poprzez Model/ScaleTo.
Przenieś PrimaryPart do określonej pozycji. Jeśli główna część nie została określona, zostanie użyta część korzeni modelu.
Nie czyni tego modelu już trwałym dla określonego gracza. Model.ModelStreamingMode musi być ustawiony na PersistentPerPlayer , aby zachować zachowanie w wyniku usunięcia.
Ustawia czynnik skalowania modelu, dostosowując rozmiar i lokalizację wszystkich potomnych Instancji, aby miały ten czynnik skalowania w stosunku do ich początkowych rozmiarów i lokalizacji, gdy czynnik skalowania był 1.
Przesunięty Model przez podany Vector3 OFFSET, zachowując orientację modelu. Jeśli kolejny BasePart lub 1> Class.Terrain1> już istnieje w nowej pozycji, to 4> Class.Model4> będzie się łączyć z powyższym obiektem.
Zdobadza pivot Class.PVInstance .
Transformuje PVInstance wraz z wszystkimi jego potomnymi PVInstances, tak aby pivot teraz znajdował się w CFrame .
Zdarzenia
Wystąpi, gdy trwałe modele zostaną wysłane do określonego gracza.
Właściwości
AirDensity
Poziom niskości ( Y ) poziomu powietrza w RMU/stud³ jednostkach (patrz Roblox jednostki), używany do ob
AllowThirdPartySales
Ta Workspace własność określa, czy zasoby stworzone przez inne użycia mogą być sprzedane w gra.
Co to są sprzedaży stron trzecich?
Gdy wartość ta jest fałszywa, ponieważ jest domyślnie, tylko zasoby stworzone przez twórcę miejsca (być może gracza lub grupa) i Roblox można sprzedać używając MarketplaceService.
W większości przypadków gry nie muszą sprzedać trzecich zasobów. Jako jednak niektóre gry, takie jak handel gry wymagają tego funkcjonalności i więc istnieje jako opcja opt-in.
Jakie produkty stron trzecich mogę sprzedać?
Uwaga, produkty rozwoju mogą być sprzedawane tylko w grze, do której są powiązane, niezależnie od tego, co ustawiono w Umożliwości pozwolenia na sprzedaż. Ta właściwość wpływa na przepustki do gry i ubrania.
AvatarUnificationMode
CSGAsyncDynamicCollision
ClientAnimatorThrottling
Określa Enum.ClientAnimatorThrottlingMode do użycia dla lokalnego klienta.
Gdy włączone, animacje na pośrednio symulowanych instancjach Model zaczną się zatrzymywać. Throttler kalkuluje intensywność zatrzymywania używając:
- strzelanki FPSw grze
- Liczba aktywnych animacji
CurrentCamera
Obiekt Camera używany przez lokalnego gracza.
Jak użyć obecnej kamery
Podczas szukania obiektu Camera klienta, użyj tego właściwości zamiast szukać dziecka Workspace zwanego „Kamera”.
Kiedy ustawisz tę właściwość, wszystkie inne obiekty Camera w Workspace zostaną zniszczone, w tym poprzedni CurrentCamera. Jeśli ustawisz tę właściwość na nil lub na kamerę, która nie jest potomstwem Workspace (lub
Dla więcej informacji, zobacz Skryptowanie kamery .
DistributedGameTime
Czas, w sekundach, że gra działa.
Mimo tytułu, ta wartość obecnie nie jest "dystrybuowana" na całym klientu i serwera. Zamiast tego, na serwerze reprezentuje to, jak długo serwer jest uruchomiony. Na klientach reprezentuje to, jak długo klient był połączony z serwerem.
Rozwój nie powinien polegać na powyższym zachowaniu, a jest możliwe, że ta właściwość zostanie zsynchronizowana na klientach i serwerze w przyszłości.
Ci, którzy szukają czasu od momentu uruchomienia programu, powinni zamiast tego użyć funkcji „time”. Zobacz poniżej, aby porównać czas między DistributedGameTime a jego alternatywami.
print(workspace.DistributedGameTime) --> Time the game started runningprint(os.time()) --> Time since epoch (1 January 1970, 00:00:00) UTCprint(tick()) --> Time since epoch (1 January 1970, 00:00:00) system timeprint(time()) --> Time the game started runningprint(elapsedTime()) --> Time since Roblox started running
FallenPartsDestroyHeight
Ta właściwość określa wysokość, w której silnik Roblox automatycznie usuwa spadające BaseParts i ich przodki Models z Workspace poprzez ich przywiązanie do 1> nil1> . To zapobiega częściom, które spadły z mapy, aby nie mogły one dalej spaść na
Jeśli usunięta część z powodu tego zachowania jest ostatnią częścią w Model , ten model zostanie również usunięty. Ma to zastosowanie do wszystkich modeli przodków części.
Właściwość ta jest uwarunkowana między -50,000 i 50,000, ponieważ BaseParts nie symuluje lub nie renderuje poprawnie na dużej odległości od źródła z powodu błędów punktu płynącego.
Ta właściwość może być czytana przez skrypcity, ale może być ustawiona tylko przez wtyczki, pasek komend lub okno właściwości w Studio.
FluidForces
Z tą właściwością włączoną, silnik fizyczny oblicza siły aerodynamiczne na BaseParts, których EnableFluidForces właściwość jest prawdziwa. Domyślnie, Default, wyłącza siły aerodynamiczne. Uw
GlobalWind
Ten właściwość określa kierunek i siłę, która wiatr płynie przez doświadczenie, wpływając na trawy terenu, dynamiczne chmury i cząsteczki. Patrz na artykuł Globalny wiatr dla szczegółów.
Gravity
Określa przyspieszenie z powodu grawitacji zastosowanej do spadającego BaseParts . Ta wartość jest mierzona w stopach na sekundę kwadratową i domyślnie ustawiona na 196,2 stopień na sekundę 2 . Poprzez zmianę tej wartości rozwójcy mogą simulować efekty zmniejszonej lub wyższej grawitacji w grze.
Przykłady kodu
local MOON_GRAVITY_RATIO = 1.62 / 9.81
local DEFAULT_GRAVITY = 196.2
local MOON_GRAVITY = DEFAULT_GRAVITY * MOON_GRAVITY_RATIO
-- Create a touch pad
local pad = Instance.new("Part")
pad.Size = Vector3.new(5, 1, 5)
pad.Position = Vector3.new(0, 0.5, 0)
pad.Anchored = true
pad.BrickColor = BrickColor.new("Bright green")
pad.Parent = workspace
-- Listen for pad touch
local enabled = false
local debounce = false
local function onPadTouched(_hit)
if not debounce then
debounce = true
enabled = not enabled
workspace.Gravity = enabled and MOON_GRAVITY or DEFAULT_GRAVITY
pad.BrickColor = enabled and BrickColor.new("Bright red") or BrickColor.new("Bright green")
task.wait(1)
debounce = false
end
end
pad.Touched:Connect(onPadTouched)
IKControlConstraintSupport
Włącza wsparcie dla ograniczeń dla IKControls. Wartość Default jest taka sama jak Enabled. Jeśli jest wyłączone, IKControls ignorują ograniczenia fizyczne. Patrz IKControl dla dodatkowych szczegółów.
InsertPoint
MeshPartHeadsAndAccessories
Ustawia, czy głowy i akcesoria postaci powinny być załadowane jako MeshParts . Wartość Default jest taka sama jak wartość Enabled. Jeśli funkcja jest włączona, zbudowane awatary będą używać 1> Class.MeshPart|MeshParts1> dla głowy i akcesoriów postaci.
ModelStreamingBehavior
MoverConstraintRootBehavior
Kontroluje logikę używającą do wyboru części korzenia maszyny dla mechanizmów, które używają dowolnego z następujących ograniczeń:
Gdy właściwość ustawiona na Enum.MoverConstraintRootBehaviorMode.Enabled zignoruje te ograniczenia, gdy wybierasz część korzenia maszyny, jeśli ograniczenie nie przesy
Gdy ta właściwość jest ustawiona na Enum.MoverConstraintRootBehaviorMode.Disabled, te ograniczenia mogą być błędnie rozważane podczas wybierania części korzenia sieci, prowadząc do niezgodnego właściwości sieci w przypadku dodawania tych ograniczeń do mechanizmu.
PathfindingUseImprovedSearch
PhysicsSteppingMethod
Określa, jak rozwiązanie przesuwa fizyczną simulację do przodu w czasie. Ta opcja nie jest skryptowa i musi być ustawiona z właściwości PhysicsSteppingMethod w Workspace w Studio. Patrz Adaptive Timestepping dla szczegółów.
<tbody><tr><td><b>Adaptacyjne</b></td><td>Silnik próbuje przypisać optymalne stawki symulacji dla poszczególnych zbliżeń 240 Hz, 120 Hz lub 60 Hz. Ta ustawienie jest optymalizowana dla wykonywanie.</td></tr><tr><td><b>Naprawiony</b></td><td>Wszystkie symulowane zestawy w przestrzeni roboczej będą się przesuwać do przodu o 240 Hz. Ta opcja jest najlepsza dla maksymalnej stabilności i celności symulacji.</td></tr><tr><td><b>Domyślny</b></td><td>Domyślnym jest obecnie <b>Naprawione</b> .</td></tr></tbody>
Opcja | Opis |
---|
Uwaga, że gdy zestawy różnych stawek symulacyjnych zostaną połączone za pośrednictwem Constraints lub kolizji, złączony mechanizm będzie domyślny dla najwyższej stawek symulacyjnych dla stabilności.
PlayerCharacterDestroyBehavior
PrimalPhysicsSolver
RejectCharacterDeletions
RenderingCacheOptimizations
ReplicateInstanceDestroySetting
Retargeting
SandboxedInstanceMode
SignalBehavior
To właściwość określa, czy handlerzy wydarzeń zostaną wstrzymani natychmiastowo po uruchomieniu wydarzenia lub opóźnieni i następnie zostaną wstrzymani na późniejszym punkcie podsumowania. Punkty podsumowania obecnie obejmują:
- Przetwarzanie danych wejścia (zakłada się raz na wejście, aby być przetwarzanym, zobacz UserInputService )
- Legacy waiting script resumption such as wait() , spawn() , and delay()
Dla więcej informacji, see Zdarzenia opóźnione .
StreamOutBehavior
Kontrolery StreamOutBehavior , z których treści będzie odczytywana z ReplicationFocus na podstawie kondycji pamięci urządzenia lub na podstawie pamięci płynącej.
Zobacz również:
- Workspace.StreamingEnabled Który kontroluje czy włączone jest przesyłanie treści
StreamingEnabled
Właściwość StreamingEnabled określa, czy transmisja treści gry jest włączona dla miejsce. Ta właściwość nie jest skryptowa i musi zostać ustawiona na obiekcie Praca w Studio.
Zobacz również:
StreamingIntegrityMode
Jeśli funkcja streamingu jest włączona, doświadczenie może zachować nieintencjonalne zachowanie, jeśli postać gracza przeniesie się w region świata, który nie został przesłany na ich klienta. Funkcja bezpieczeństwa przesyłania oferuje sposób na uniknięcie tych potencjalnie problematycznych sytuacji.
StreamingMinRadius
Właściwość StreamingMinRadius określa obszar wokół postaci gracza lub obecnego ReplicationFocus w którym zostanie przesunięty najwyższy priorytetowo. Domyślnie 64 studs.
Należy zachować ostrożność, gdy zwiększa się domyślną maksymalną rozdzielczość, ponieważ wzrost tego wymaga więcej pamięci i więcej przepustowości na koszt innych komponentów.
Zobacz również:
- Workspace.StreamingEnabled Który kontroluje czy włączone jest przesyłanie treści
StreamingTargetRadius
Właściwość StreamingTargetRadius kontroluje maksymalną odległość od postaci gracza lub obecnego ReplicationFocus w którym dany materiał będzie transmitowany. Domyślnie 1024 studs.
Uwaga, że silnik jest dozwolony do przechowywania wcześniej załadowanego treści poza obszarem docelowym, zezwoleniem na pamięć.
Zobacz również:
- Workspace.StreamingEnabled Który kontroluje czy włączone jest przesyłanie treści
Terrain
Ten parametr odnosi się do obiektu Terrain pochodzącego z Workspace.
Zobacz Środowiskowy teren dla więcej informacji.
TouchEventsUseCollisionGroups
TouchesUseCollisionGroups
Ta właściwość określa, czy parts w różnych grupach ustawionych na niekolidowanie ignoruje kolidy i wydarzenia dotykowe. Domyślnie wartość tej właściwości ustawiona jest na false .
Gdy ta właściwość jest włączona, części w różnych grupach ustawionych na niekolidowanie również ignorują właściwość CanTouch, podobną do tego, jak ignorowana jest właściwość BasePart.CanCollide. Dla więcej informacji na temat zachowania CanTouch, odwiedź stronę właściwości.
Metody
GetNumAwakeParts
Wyświetla liczbę BaseParts, które uznane za aktywne fizycznie, z powodu bycia niedawno pod wpływem fizyki.
Funkcja ta dostarcza mierzalną ilość BaseParts wpływających na nią lub niedawno pod wpływem sił fizycznych.
print(workspace:GetNumAwakeParts()) -- prints the number of 'awake' parts
Sposób śpiewania vs Budzenie części
Aby zapewnić dobre wykonywanie, Roblox ustawia
Zwroty
Liczba części aktywnych.
GetPhysicsThrottling
Zwraca liczbę, pomiędzy 0 i 100, reprezentującą procentowy czas rzeczywisty, który jest obecnie ograniczany przez simulację fizyczną.
Funkcja ta może być używana do określenia, czy i w jakim stopniu, dławienie fizyki ma miejsce.
Co to jest ograniczaniem prędkości fizycznej?
Zjawisko to jest spowodowane przez silnik fizyczny, który wykrywa, że nie może zostać zesynchronizowany z grą w czasie rzeczywistym. Gdy fizyka jest zjawiskiem, zostanie ona aktualizowana mniej często, powodując, że BaseParts pojawia się, aby wydawać się bardziej powolny.
Bez zacięcia, symulacja fizyczna spadłaby dalej za granie z zesynchronizowanym z grą. Może to prowadzić do niższych stóp klatki i innego niechcianego zachowania.
Przedmioty związane z Humanoids są zwolnione od ograniczeń fizycznych.
Zobacz również Workspace:SetPhysicsThrottleEnabled() .
Pokazanie fizycznego ograniczenia
Rozwój programistów zawsze powinien unikać tworzenia miejsc, które przeciążają silnik fizyczny, ponieważ prowadzi to do subtelty doświadczeń dla graczy. Ci, którzy chcą symulować przeciążenie fizyczne dla celów badań, muszą jednak stworzyć tylko wiele Parts bardzo szybko.
local i = 0while true doi += 1if i % 5 == 0 thentask.wait()endlocal part = Instance.new("Part", workspace)end
Zwroty
Procent rzeczywistego czasu, który jest obecnie ograniczany do symulacji fizycznej.
GetRealPhysicsFPS
Wyświetla liczbę klatkowe prostej, w której jest obecnie symulowana fizyka.
Używanie GetRealPhysicsFPS do walki z eksploitatorami
Zwykłym użyciem tej funkcji jest wykrycie, czy atakujący zwiększają swoją lokalną szybkość fizyczną, aby poruszać się szybciej. To jest zazwyczaj robione poprzez porównanie wyniku zwróconego przez Get
Zwroty
Wyświetla liczbę klatkowe prostej, w której jest obecnie symulowana fizyka.
Przykłady kodu
local Players = game:GetService("Players")
local player = Players.LocalPlayer
while task.wait(1) do
if workspace:GetRealPhysicsFPS() > 65 then
player:Kick()
end
end
GetServerTimeNow
GetServerTimeNow zwraca czas odliczania na serwerze z mikrosekundową precyzją. Czas jest dostosowany do drift i gładzone monotonowo (jest gwarantowany, że nie ujem). Serwerowy zegar postępuje nie szybciej niż 1,006× prędkość i nie mniej niż 0,994× prędkość.
Wyświetla uniksowy czas śród zapisu, który można użyć z os.date() lub z DateTime.fromUnixTimestamp() .
Funkcja ta jest przydatna do tworzenia zsynchronizowanych doświadczeń, ponieważ ma trzy właściwości niezbędne do tego, aby to zrobić: jest to prawdziwy zegar świata, jest monotoniczny i ma dość dobrą precyzję.
Ta funkcja polega na serwerze, więc wezwanie jej z klienta, który nie jest połączony, spowoduje błąd.
Zobacz również:
- DistributedGameTime , zegar do gry
Zwroty
Czas epoki oszacowany na serwerze.
JoinToOutsiders
Funkcja ta tworzy połączenia między Parts a dowolnymi dotykanymi częściami w zależności od powierzchni części i trybu łączenia określonego.
Funkcja ta tworzy połączenia między określonymi częściami i dowolnymi powierzchniami dotykującymi, w zależności od powierzchni części i trybu powstawania współdzielonego.
- Klej, śruby, wkręty, uniwersalne, spawy i gładkie powierzchnie wszystkie stworzą instancje spoiny.
- Kule nie będą spawować na niczym. Strzegłe boki cylindrów nie będą spawować, ale płaskie końce będą.
Pierwszy parametr to lista BaseParts . Stworzone łączenia będą tworzone tylko pomiędzy częściami w listach i nie będą tworzone w listach. łączenia nie będą tworzone pomiędzy częściami w listach.
Drugi parametr to Enum.JointCreationMode, który określa, jak powstają połączenia. Przekazując wartość w jednym z wymienionych parametrów, Enum.JointCreationMode.All lub Enum.JointCreationMode.Surface, ma to samo zachowanie, co ma miejsce, gdy zawsze łączysz
Funkcja ta jest używana przez narzędzie Roblox Studio Move, gdy użytkownik kończy przenoszenie wyboru. Wraz z Plugin:GetJoinMode() i Workspace:UnjoinFromOutsiders() można ją używać do utrzymania funkcji przyłączenia podczas rozwój personalnych narzędzi budowania. Zobacz przykłady poniżej dla przykładu.
-- zakończ przenoszenie selekcji, twórz łączenia
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
workspace:JoinToOutsiders(parts, joinMode)
end
-- rozpoczęto przesuwanie selekcji, łamać połączenia
local function startMovingParts(parts)
workspace:UnjoinFromOutsiders(parts)
end
Parametry
Materiały Class.BasePart|BaseParts dla których należy stworzyć współtwórcę.
Mode Mode Enum.JointCreationMode.All do użycia. Przepływanie w Enum.JointCreationMode.Surface Mode Mode.All lub 1>1> Mode Surface1> ma to samo zachowanie, co równa się do Dołącz zawsze.
Zwroty
PGSIsEnabled
Wróщает prawdę, jeśli w grze jest włączony rozwiązaтель PGS Physics.
Ponieważ Workspace.PGSPhysicsSolverEnabled nie może być dostępny przez skrypty, funkcja PGSIsEnabled pozwala rozwójcom powiedzieć, który solwer fizyczny jest używany w grze.
print(workspace:PGSIsEnabled()) -- true = PGS solver enabledprint(workspace:PGSIsEnabled()) -- false = Legacy solver enabled
Zwroty
Prawdziwy, jeśli rozwiązanie PGS jest włączone.
UnjoinFromOutsiders
Złama wszystkie stopy między BaseParts i innymi BaseParts.
Funkcja ta wymaga matryki BaseParts . Uwaga, połączenia nie będą złamane między tymi BaseParts (każde z nich), tylko między tymi BaseParts i innymi 1> Class.BasePart|BaseParts1> nie w arystry.
Funkcja ta jest używana przez narzędzie Roblox Studio Move, gdy użytkownik zaczyna poruszać wybór. Wraz z Plugin:GetJoinMode() i Workspace:JoinToOutsiders() można ją używać do zachowania funkcji przyłączenia podczas rozwoju niestandardowych narzędzi do budowy. Zobacz przykłady poniżej dla przykładu.
-- finished moving a selection, make joints
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
workspace:JoinToOutsiders(parts, joinMode)
end
-- started moving a selection, break joints
local function startMovingParts(parts)
workspace:UnjoinFromOutsiders(parts)
end
Parametry
Materiały BaseParts dla których należy złamać współbieguny.
Zwroty
ZoomToExtents
Pozycje i skalowanie Workspace.CurrentCamera aby pokazać stopień BaseParts obecnie w Workspace .
Funkcja ta była używana w przycisku ,,Zoomuj do Extents' w Roblox Studio. Wyświetla zachowanie podobne do funkcja'Zoom To' (F skrót). Pochodzi jednak pokazuje Extents' z wybranego obiektu, a nie obiektu aktualnie wybranego.
Ta funkcja nie może być używana w skryptach, ale będzie działać w oknie command lub plugin.
Zwroty
Zdarzenia
PersistentLoaded
Ten wąż pojawia się za każdym razem, gdy gracz otrzymuje wszystkie obecne trwałe modele i częściowe modele atomowe. Parametr player określa, który gracz otrzymał wszystkie dostępne instancje.
Uwaga, że ładowanie doświadczenia dzieje się przed trwałym ładowaniem, a uruchomienie wydarzenia DataModel.Loaded nie wskazuje, że wszystkie trwałe modele są obecne.