Workspace

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst

Die Hauptaufgabe von Workspace besteht darin, Objekte zu halten, die in der 3D-Welt existieren, effektiv BaseParts und Attachments .Während solche Objekte Nachkommen von Workspace sind, werden sie aktiv sein.Für BaseParts wird dies bedeuten, dass sie gerendert werden und physisch mit anderen Teilen und der Welt interagieren.Für Attachments bedeutet dies, dass Objekte, die ihnen geschmückt wurden, wie ParticleEmitters , Beams und BillboardGuis , rendernwerden.

Das Verständnis dieses Verhaltens ist wichtig, da es bedeutet, dass Objekte von Workspace entfernt werden können, wenn sie nicht benötigt werden.Zum Beispiel kann die Karte Models entfernt werden, wenn eine andere Karte abgespielt wird.Objekte, die nicht sofort in der 3D-Welt benötigt werden, werden in der Regel in ReplicatedStorage oder ServerStorage gespeichert.

In seiner Rolle als Inhaber aktiver 3D-Objekte enthält Workspace eine Reihe nützlicher Funktionen, die sich auf Teile, ihre Positionen und Gelenze zwischen ihnen beziehen.

Zugriff auf den Arbeitsbereich

Workspace kann auf mehrere weisen zugänglich sein, alle von denen sind gültig.

  • workspace
  • game:GetService("Workspace")
  • game.Workspace
Anmerkungen

Zusammenfassung

Eigenschaften

Eigenschaften von Model übernommen
  • Plugin-Sicherheit
    Parallel lesen

    Legt das Detaillevel auf dem Modell für Erlebnisse mit aktiviertem Instanzstreaming fest.

  • Steuert das Modellstreamingverhalten auf Models, wenn Instanzstreaming aktiviert ist.

  • Parallel lesen

    Der primäre Teil des Model , oder nil wenn nicht explizit festgelegt.

  • Nicht repliziert
    Nicht skriptfähig
    Parallel lesen

    Eigenschaft nur für den Editor, mit der das Modell um seinen Pivot herum skaliert wird. Das Festlegen dieser Eigenschaft bewegt die Skalierung, als ob Model/ScaleTo aufgerufen wurde.

  • Nicht repliziert
    Parallel lesen

    Bestimmt, wo sich der Pivot eines , der keine festgelegte hat, befindet.

Eigenschaften von PVInstance übernommen

Methoden

Methoden von WorldRoot übernommenMethoden von Model übernommen
  • AddPersistentPlayer(playerInstance : Player):()

    Setzt dieses Modell für den angegebenen Spieler dauerhaft. ModelStreamingMode muss auf PersistentPerPlayer gesetzt werden, damit sich das Verhalten ändert, als Ergebnis der Ergänzung.

  • Gibt eine Beschreibung eines Volumens zurück, das alle Teile eines Modells enthält.

  • Gibt die Größe der kleinsten Bindungsbox zurück, die alle BaseParts in der Model enthält, ausgerichtet auf die Model.PrimaryPart, wenn sie festgelegt ist.

  • Gibt alle Player Objekte zurück, für die dieses Modellobjekt persistent ist.Das Verhalten unterscheidet sich je nachdem, ob diese Methode von einem Script oder einem LocalScript aufgerufen wird.

  • Gibt die kanonische Skala des Modells zurück, die standardmäßig auf 1 für neu erstellte Modelle gesetzt wird und sich ändern wird, wenn sie über Model/ScaleTo skaliert wird.

  • MoveTo(position : Vector3):()

    Bewegt den PrimaryPart an die angegebene Position. Wenn kein primärer Teil angegeben wurde, wird der Wurzelteil des Modells verwendet.

  • RemovePersistentPlayer(playerInstance : Player):()

    Macht dieses Modell für den angegebenen Spieler nicht mehr persistent.ModelStreamingMode muss auf PersistentPerPlayer gesetzt werden, damit sich das Verhalten ändert, als Ergebnis der Entfernung.

  • ScaleTo(newScaleFactor : number):()

    Legt den Skalierungsfaktor des Modells fest, passt die Größe und den Standort aller Nachkommen-Instanzen an, sodass sie diesen Skalierungsfaktor im Verhältnis zu ihrer ursprünglichen Größe und ihrem Standort haben, als der Skalierungsfaktor 1 war.

  • TranslateBy(delta : Vector3):()

    Verschiebt eine Model durch den angegebenen Vector3 Offset, wobei die Orientierung des Modells beibehalten wird.Wenn ein anderes BasePart oder Terrain bereits an der neuen Position existiert, wird der Model das zugeordnete Objekt überschreiben.

Methoden von PVInstance übernommen

Ereignisse

Eigenschaften

AirDensity

Parallel lesen

Die Bodenebene ( Y von 0) Luftdichte in RMU/stud³-Einheiten (siehe Roblox-Einheiten ), die verwendet wird, um die aerodynamische Kraft zu berechnen, wenn Workspace.FluidForces ist Experimental .Der Standard entspricht der realistischen Meeresspiegel-Luftdichte bei Standardtemperatur und -druck.Die Luftdichte sinkt, wenn die Y Höhe zunimmt, und erreicht 5% ihres Bodenlevelwerts bei 100.000 Klötzen.Unter Y von 0 wird die Luftdichte am Eingangswert festgelegt.

AllowThirdPartySales

Nicht repliziert
Parallel lesen

Diese Workspace Eigenschaft bestimmt, ob Assets, die von anderen Verwendungen erstellt wurden, im Spiel verkauft werden können.

Was sind Drittverkäufe?

Wenn dieser Wert falsch ist, wie es standardmäßig der Fall ist, können nur Assets, die vom Platzschöpfer (sei es ein Spieler oder eine Gruppe) und Roblox erstellt wurden, mit MarketplaceService verkauft werden.

In den meisten Fällen müssen Spiele keine Drittsoftware verkaufen.Einige Spiele wie Handels-Hangouts erfordern jedoch diese Funktion und es existiert daher als opt-in-Option.

Welche Produkte von Drittanbietern kann ich verkaufen?

Beachten Sie, dass Entwicklerprodukte nur im Spiel verkauft werden können, mit dem sie verbunden sind, unabhängig davon, was AllowThirdPartySales aufgestellt ist.Diese Eigenschaft betrifft Spielpässe und Kleidung.

AvatarUnificationMode

Nicht skriptfähig
Parallel lesen

ClientAnimatorThrottling

Parallel lesen

Gibt das Enum.ClientAnimatorThrottlingMode an, das für den lokalen Client verwendet werden soll.

Wenn aktiviert, beginnen Animationen auf entfernt-simulierten Model zu verlangsamen. Der Beschleuniger berechnet die Beschleunigungsintensität mit:

  • Sichtbarkeit eines Model im Verhältnis zu dem Camera
  • Ego-Shooterim Spiel
  • Anzahl der aktiven Animationen

CurrentCamera

Nicht repliziert
Parallel lesen

Das Camera Objekt, das vom lokalen Spieler:inverwendet wird.

Wie verwende ich die CurrentCamera

Wenn du nach dem Objekt eines Clients suchst Camera, verwende diese Eigenschaft anstelle der Suche nach einem Kind mit dem Namen Workspace "Kamera".

Wenn du diese Eigenschaftenfestlegst, werden alle anderen Camera Objekte in der Workspace zerstört, einschließlich der vorherigen CurrentCamera.Wenn Sie diese Eigenschaft auf nil oder auf eine Kamera, die kein Nachkomme des Arbeitsbereichs ist (oder die CurrentCamera sonst zerstört wird), festlegen, wird eine neue Camera erstellt und zugewiesen.Vermeiden Sie diese Szenarien, da das Zerstören der Kamera unbeabsichtigte Konsequenzen haben kann.

Für weitere Informationen, siehe Skripten der Kamera.

DistributedGameTime

Nicht repliziert
Parallel lesen

Die Menge der Zeit, in Sekunden, die das Spiel läuft.

Trotz des Titels ist dieser Wert derzeit nicht "verteilt" auf den Client und den Server.Stattdessen repräsentiert er auf dem Server, wie lange der Server läuft.Auf dem Client repräsentiert es, wie lange der Client mit dem Server verbunden war.

Entwickler sollten nicht auf das obige Verhalten verlassen, und es ist möglich, dass diese Eigenschaft in Zukunft auf Clients und Server überall synchronisiert wird.

Diejenigen, die die Zeit suchen, seit das Programm ausgeführt wird, sollten stattdessen die Funktion 'time' verwenden.Siehe unten für einen Vergleich zwischen DistributedGameTime und seinen Alternativen.


local Workspace = game:GetService("Workspace")
print(Workspace.DistributedGameTime) -- Time the game started running
print(os.time()) -- Time since epoch (1 January 1970, 00:00:00) UTC
print(tick()) -- Time since epoch (1 January 1970, 00:00:00) system time
print(time()) -- Time the game started running
print(elapsedTime()) -- Time since Roblox started running

FallHeightEnabled

Plugin-Sicherheit
Parallel lesen

FallenPartsDestroyHeight

Plugin-Sicherheit
Parallel lesen

Diese Eigenschaft legt die Höhe fest, auf der die Roblox-Engine fällende BaseParts und deren Vorfahren Models automatisch von Workspace entfernt, indem sie sie zu nil parentisiert.Dies soll verhindern, dass Teile, die von der Karte gefallen sind, für immer weiter fallen.

Wenn ein Teil aufgrund dieses Verhaltens entfernt wird, ist dieses Modell auch in einem Model der letzte Teil.Dies gilt für alle Modell-Vorfahren des Teils.

Diese Eigenschaft wird zwischen -50,000 und 50,000 eingeschränkt, weil BaseParts nicht richtig simuliert oder gerendert werden kann, wenn sie sich auf große Entfernung von der Quelle aufgrund von Unsicherheiten bei der Gleitkommastoleranz befindet.

Diese Eigenschaft kann von Skripten gelesen werden, kann aber nur von Plugins, der Befehlsleiste oder dem Eigenschaften-Fenster in Studio festgelegt werden.

FluidForces

Nicht skriptfähig
Parallel lesen

Mit dieser Eigenschaft aktiviert berechnet die Physik-Engine aerodynamische Kräfte auf BaseParts, deren EnableFluidForces Eigenschaft wahr ist.Der Standard, Default , deaktiviert aerodynamische Kräfte.Beachten Sie, dass diese Eigenschaft nicht durch Skripte festgelegt werden kann und stattdessen im Studio umgeschaltet werden muss.

GlobalWind

Parallel lesen

Diese Eigenschaft gibt die Richtung und Stärke an, durch die der Wind durch das Erlebnis bläst, das Geländegras, dynamische Wolken und Partikel beeinflusst.Siehe den Artikel Globaler Wind für Details.

Gravity

Parallel lesen

Bestimmt die Beschleunigung durch Gravitation, die auf das Fallen BaseParts angewendet wird.Dieser Wert wird in Stollen pro Sekunde gemessen und ist standardmäßig auf 196,2 Stollen/Sekunde 2 eingestellt.Durch Ändern dieses Werts können Entwickler die Auswirkungen von niedrigerer oder höherer Gravitation im Spiel simulieren.

Code-Beispiele

This script creates a touch pad in the workspace that, when touched, will reduce the game's gravity. Activating the pad again will switch back to normal gravity.

Low Gravity Button

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

Nicht skriptfähig
Parallel lesen

Aktiviert die Unterstützung von Einschränkungen für IKControls.Der Wert Default ist der gleiche wie Enabled.Wenn deaktiviert, ignorieren IKControls physikalische Einschränkungen.Siehe IKControl für weitere Details.

InsertPoint

Nicht repliziert
Parallel lesen

MeshPartHeadsAndAccessories

Nicht skriptfähig
Parallel lesen

Legt fest, ob Charakterköpfe und Accessoires als MeshParts.Der Wert Default ist derselbe wie Enabled.Wenn diese Funktion aktiviert ist, verwenden integrierte Avatare für den Kopf und die Zubehörteile des Charakters MeshParts.

ModelStreamingBehavior

Nicht skriptfähig
Parallel lesen

MoverConstraintRootBehavior

Nicht skriptfähig
Parallel lesen

Steuert die Logik, die verwendet wird, um die Monturwurzelteil für Mechanismen auszuwählen, die eine der folgenden Einschränkungen verwenden:

Wenn diese Eigenschaft auf Enum.MoverConstraintRootBehaviorMode.Enabled festgelegt ist, werden diese Einschränkungen ignoriert, wenn die Montagemaschinenwurzelteil ausgewählt wird, wenn die Einschränkung keine Kräfte zwischen zwei Teilen überträgt (bei einigen Beispielen wird AngularVelocity.ReactionTorqueEnabled auf false festgelegt, AlignPosition.ReactionForceEnabled auf false oder AlignOrientation.Mode auf Enum.OrientationAlignmentMode.OneAttachment festgelegt).

Wenn diese Eigenschaft auf Enum.MoverConstraintRootBehaviorMode.Disabled festgelegt ist, können diese Einschränkungen beim Auswählen der Monturwurzel falsch betrachtet werden, was zu uneinheitlicher Netzwerkbesitz und Verzögerungen führt, wenn diese Einschränkungen zu einem Mechanismus hinzugefügt werden.

PathfindingUseImprovedSearch

Nicht skriptfähig
Parallel lesen

PhysicsImprovedSleep

Nicht skriptfähig
Parallel lesen

PhysicsSteppingMethod

Nicht skriptfähig
Parallel lesen

Legt fest, wie der Solver die Physiksimulation in der Zeit voranschreiten lässt.Diese Option ist nicht skriptbar und muss von der PhysicsSteppingMethod Eigenschaft von Arbeitsplatz innerhalb von Studio festgelegt werden.Siehe Adaptives Zeitsteuern für Details.


<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Adaptiv</b></td>
<td>Die Engine versucht, optimale Simulationsraten für einzelne Montagemaschinen von 240 Hz, 120 Hz oder 60 Hz zuzuweisen.Diese Einstellung ist für die Erfüllungoptimiert.</td>
</tr>
<tr>
<td><b>Fixiert</b></td>
<td>Alle simulierten Zusammenstellungen innerhalb des Arbeitsbereichs werden mit 240 Hz vorangebracht. Diese Option ist am besten geeignet für optimale Stabilität und Simulationsgenauigkeit.</td>
</tr>
<tr>
<td><b>Standardmäßig</b></td>
<td>Der aktuelle Standard ist <b>Repariert</b>.</td>
</tr>
</tbody>
Auswahl

Beachten Sie, dass wenn sich Versammlungen mit unterschiedlichen Simulationsraten über Constraints oder Kollisionen verbinden, der kombinierte Mechanismus standardmäßig die höchste Simulationsrate für Stabilität verwendet.

PlayerCharacterDestroyBehavior

Nicht skriptfähig
Parallel lesen

PrimalPhysicsSolver

Nicht skriptfähig
Parallel lesen

RejectCharacterDeletions

Nicht skriptfähig
Parallel lesen

RenderingCacheOptimizations

Nicht skriptfähig
Parallel lesen

ReplicateInstanceDestroySetting

Nicht skriptfähig
Parallel lesen
Parallel lesen

SandboxedInstanceMode

Nicht skriptfähig
Parallel lesen

SignalBehavior

Nicht skriptfähig
Parallel lesen

Diese Eigenschaft legt fest, ob Event-Handler sofort fortgesetzt werden, wenn das Ereignis ausgelöst wird, oder verschoben und dann an einem späteren Wiederaufnahmepunkt fortgesetzt werden.Wiederaufnahmepunkte enthalten derzeit:

Für weitere Informationen, siehe Verzögerte Ereignisse.

StreamOutBehavior

Nicht skriptfähig
Parallel lesen

Die StreamOutBehavior -Steuerelemente, von denen Inhalte gemäß Geräte-Speicherbedingungen oder basierend auf Streamingradius entlastet werden.

Siehe auch:

StreamingEnabled

Plugin-Sicherheit
Parallel lesen

Die Eigenschaft StreamingEnabled bestimmt, ob das Streamen von Spielinhalten für den Ort aktiviert ist.Diese Eigenschaft ist nicht skriptbar und muss daher auf dem Arbeitsbereich -Objekt in Studio festgelegt werden.

Siehe auch:

StreamingIntegrityMode

Nicht skriptfähig
Parallel lesen

Wenn die Instanz Streaming aktiviert ist, kann ein Erlebnis auf unbeabsichtigte Weise reagieren, wenn der Charakter eines Spieler:inin eine Region der Welt wechselt, die nicht auf seinen Client gestreamt wurde.Die Streaming-Integritätsfunktion bietet eine Möglichkeit, diese möglicherweise problematischen Situationen zu vermeiden.

StreamingMinRadius

Nicht skriptfähig
Parallel lesen

Die Eigenschaft StreamingMinRadius gibt den Radius um den Charakter des Spieler:inoder die aktuelle ReplicationFocus an, in der Inhalte mit höchster Priorität gestreamt werden.Standard auf 64 Stollen.

Beim Erhöhen des Standardminimalradius muss Vorsicht walten, da dies mehr Speicher und mehr Serverbandbreite auf Kosten anderer Komponenten erfordert.

Siehe auch:

StreamingTargetRadius

Nicht skriptfähig
Parallel lesen

Die Eigenschaft StreamingTargetRadius steuert die maximale Entfernung vom Charakter des Spieler:inoder der aktuellen ReplicationFocus, in der Inhalte gestreamt werden.Standard auf 1024 Stollen.

Beachten Sie, dass die Engine es erlaubt ist, zuvor geladene Inhalte über den Zielradius hinaus zu behalten, sofern das Gedächtnis es zulässt.

Siehe auch:

Terrain

Schreibgeschützt
Nicht repliziert
Parallel lesen

Diese Eigenschaft ist ein Verweis auf das Terrain Objekt, das dem Workspace Objekt zugewiesen wurde.

Terrain object within the Workspace hierarchy

Siehe Umwelt-Terrain für weitere Informationen.

TouchEventsUseCollisionGroups

Nicht skriptfähig
Parallel lesen

TouchesUseCollisionGroups

Nicht skriptfähig
Parallel lesen

Diese Eigenschaft bestimmt, ob parts in verschiedenen Gruppen, die nicht kollidieren sollen, Kollisionen und Berührungsereignisse ignorieren wird.Standardmäßig wird der Wert dieser Eigenschaft auf false festgelegt.

Wenn diese Eigenschaft aktiviert ist, ignorieren Teile in verschiedenen Gruppen, die nicht kollidieren sollen, auch die EigenschaftenCanTouch, ähnlich wie BasePart.CanCollide ignoriert wird.Für weitere Informationen über das Verhalten von CanTouch besuchen Sie bitte seine Eigenschaftsseite.

Methoden

GetNumAwakeParts

Parallel schreiben

Gibt die Anzahl von BaseParts, die als physisch aktiv angesehen werden, da sie kürzlich unter dem Einfluss der Physik standen.

Diese Funktion gibt eine Maßzahl an, wie viele BaseParts von physischen Kräften beeinflusst werden oder kürzlich unter deren Einfluss stehen.


local Workspace = game:GetService("Workspace")
print(Workspace:GetNumAwakeParts())

Schlafen gegen wache Teile

Um eine gute Erfüllungzu gewährleisten, setzt Roblox BaseParts fest, in dem die Physik nicht auf einen "schlafenden" Zustand angewendet wird.BaseParts mit BasePart.Anchored auf wahr gesetzt, wird zum Beispiel immer schlafen, da die Physik für sie nicht gilt.Wenn eine Kraft auf eine nicht verankerte BasePart angewendet wird, wird ein "aktiv" Zustand angewendet.Während ein BasePart wach ist, führt die Roblox-PhysikEngine kontinuierliche Berechnungen durch, um sicherzustellen, dass physische Kräfte richtig mit dem Teil interagieren.Sobald die BasePart nicht mehr physikalischen Kräften unterliegt, kehrt sie in einen "schlafenden" Zustand zurück.


Rückgaben

Die Anzahl der wachen Teile.

GetPhysicsThrottling

Parallel schreiben

Gibt eine ganzzahligzurück, zwischen 0 und 100, die den Prozentsatz der Echtzeit darstellt, zu dem die Physiksimulation derzeit gedrosselt wird.

Diese Funktion kann verwendet werden, um zu bestimmen, ob und inwieweit Physik-Throttling auftritt.

Was ist Physik-Drosselung?

Physik-Throttling tritt auf, wenn die Physik-Engine feststellt, dass sie das Spiel nicht in Echtzeit verfolgen kann.Wenn die Physik gedrosselt wird, wird sie weniger häufig aktualisiert, was dazu führt, dass BaseParts langsamer bewegt erscheint.

Ohne Drosselung würde die Physiksimulation weiter zurückfallen, was nicht im Einklang mit dem Spiel ist.Dies kann zu niedrigeren Frameraten und anderen unerwünschten Verhaltensweisen führen.

Objekte, die mit Humanoids verbunden sind, sind von der Physikbeschleunigung ausgenommen.

Siehe auch Workspace:SetPhysicsThrottleEnabled().

Physik-Drosselung demonstrieren

Entwickler sollten immer vermeiden, Orte zu erstellen, die die Physik-Engine überlasten, da dies zu einem schlechten Erlebnis für Spieler führt.Diejenigen, die Physik-Throttling für Forschungszwecke simulieren möchten, müssen jedoch nur sehr schnell viele Parts erstellen.


local Workspace = game:GetService("Workspace")
local i = 0
while true do
i += 1
if i % 5 == 0 then
task.wait()
end
local part = Instance.new("Part", Workspace)
end

Rückgaben

Der Prozentsatz der Echtzeit, in der die Physiksimulation derzeit gedrosselt wird.

GetRealPhysicsFPS

Parallel schreiben

Gibt die Anzahl der Frames pro Sekunde zurück, mit der Physik derzeit simuliert wird.

Verwendung von GetRealPhysicsFPS, um Exploiter zu bekämpfen

Eine häufige Verwendung dieser Funktion ist es, zu erkennen, ob Exploiter ihre lokale Physik-Frame-Rate erhöhen, um schneller zu bewegen.Dies geschieht in der Regel, indem das Ergebnis, das von der GetRealPhysicsFPS eines Clients zurückgegeben wird, mit einem Maximum verglichen wird, das in normalen Fällen nicht überschritten wird (normalerweise 65 oder 70).Wenn diese Grenze überschritten wird, können Entwickler die Player:Kick()-Funktion verwenden, um diese Player aus dem Spiel zu entfernen.Es ist wichtig zu bedenken, dass, obwohl diese Praxis manchmal effektiv sein kann, Anti-Exploiter-Maßnahmen auf clientseitige nie zu 100% zuverlässig sind.


Rückgaben

Gibt die Anzahl der Frames pro Sekunde zurück, mit der Physik derzeit simuliert wird.

Code-Beispiele

Speed exploiters commonly increase their local physics FPS in order to increase their character speed. This can be detected from a LocalScript by checking if the player's physics FPS is over the maximum:

Workspace:GetRealPhysicsFPS

local Players = game:GetService("Players")
local player = Players.LocalPlayer
while task.wait(1) do
if workspace:GetRealPhysicsFPS() > 65 then
player:Kick()
end
end

GetServerTimeNow

Parallel schreiben

GetServerTimeNow() gibt die beste Annäherung des Clients an die aktuelle Zeit auf dem Server zurück.Dies ist nützlich für die Erstellung synchronisierter Erlebnisse, da jeder Client unabhängig von seiner Zeitzone oder lokalen Uhr die gleichen Ergebnisse erhält.

Dies gibt eine Unix-Zeitmarke zurück, ähnlich wie os.time(), die mit os.date() oder mit DateTime.fromUnixTimestamp() verwendet werden kann.

Der Zeitpunkt, der von dieser Funktion zurückgegeben wird, wird glattgeschliffen, so dass:

  • Es ist monoton; sein Wert wird nie sinken.
  • Es bewegt sich mit der gleichen Geschwindigkeit wie die lokale Uhr innerhalb von 0,6%.

GetServerTimeNow() ist teuer im vergleich zu DateTime.now() und weniger präzise als os.clock(), so sollte es verwendet werden, um sicherzustellen, dass ein ereignis zur richtigen realzeit beginnt oder um dinge periodisch anzupassen, um eine reihe von ereignissen im einklang zu halten.

Diese Funktion basiert auf dem Server, sodass ein Fehler auftreten wird, wenn sie von einem Client ausgerufen wird, der nicht verbunden ist.Beachten Sie auch, dass diese Funktion nicht für Dinge wie zeitgesteuerte Belohnungen geeignet ist, da sie nicht sicher ist im Vergleich zu der Verfolgung solcher Timer auf dem Server.

Siehe auch:


Rückgaben

Der geschätzte Unix-Zeitstempel auf dem Server.

JoinToOutsiders

()

Diese Funktion erstellt Verbindungen zwischen den angegebenen Parts und allen berührenden Teilen, abhängig von den Oberflächen der Teile und dem angegebenen Verbindungsmodus.

Diese Funktion erstellt Verbindungen zwischen den angegebenen Teilen und allen flachen Berührungsflächen, abhängig von den Oberflächen der Teile und dem angegebenen Verbindungsmodus.

  • Kleber, Stollen, Eingänge, Universal, Schweiß und glatte Oberflächen werden alle Weld-Instanzen erstellen.
  • Kugeln werden nicht auf irgendetwas verschweißt. Die abgerundeten Seiten von Zylindern werden nicht verschweißt, aber die flachen Endseiten werden es tun.
  • Scharniere und Motorflächen erzeugen immer noch Rotate und RotateP gemeinsame Instanzen, unabhängig von der Form des Teils.

Der erste Parameter ist eine Liste von BaseParts.Gelenke werden nur zwischen den Teilen in der Liste erstellt und nicht in der Array.Gelenke werden nicht zwischen den Teilen in der Arrayerstellt.

Der zweite Parameter ist ein Enum.JointCreationMode, der festlegt, wie Gelenke erstellt werden.Das Übergeben eines der enum-Werte, Enum.JointCreationMode.All oder Enum.JointCreationMode.Surface, hat das gleiche Verhalten, das der Beitritt immer entspricht

Diese Funktion wird von der Roblox Studio-Bewegungsfunktion verwendet, wenn der Benutzer die Bewegung einer Auswahl abgeschlossen hat.In Kombination mit Plugin:GetJoinMode() und Workspace:UnjoinFromOutsiders() kann es verwendet werden, um die Verbindungsfunktionalität bei der Entwicklung von benutzerdefinierten Studio-Build-Tools zu erhalten.Siehe die Snippets unten für ein Beispiel.


local Workspace = game:GetService("Workspace")
-- Auswahlbewegung abgeschlossen; Schließe Gelenke
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end

local Workspace = game:GetService("Workspace")
-- Bewegung einer Auswahl begonnen; Bruchgelenke
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end

Parameter

objects: Instances

Ein Array von BaseParts für die, bei denen Gelenke hergestellt werden sollen.

Standardwert: ""

Das Enum.JointCreationMode zu verwenden. Das Übergeben von Enum.JointCreationMode.All oder Enum.JointCreationMode.Surface hat das gleiche Verhalten, das der Beitritt immer entspricht.

Standardwert: ""

Rückgaben

()

PGSIsEnabled

Gibt true zurück, wenn das Spiel den PGS-Physiklöser aktiviert hat.

Da Workspace.PGSPhysicsSolverEnabled von Skripten nicht zugänglich ist, ermöglicht die Funktion PGSIsEnabled den Entwicklern, anzugeben, mit welchem Physiklöser das Spiel verwendet wird.


Rückgaben

Wahr, wenn der PGS-Löser aktiviert ist.

UnjoinFromOutsiders

()

Bricht alle Gelenke zwischen dem angegebenen BaseParts und anderen BaseParts .

Diese Funktion erfordert ein Array von BaseParts.Beachten Sie, dass keine Gelenke zwischen diesen BaseParts (einander) gebrochen werden, nur zwischen diesen BaseParts und anderen BaseParts nicht in der Liste.

Diese Funktion wird von der Roblox Studio-Bewegungsfunktion verwendet, wenn der Benutzer beginnt, eine Auswahl zu bewegen.In Kombination mit Plugin:GetJoinMode() und Workspace:JoinToOutsiders() kann es verwendet werden, um die Verbindungsfunktionalität bei der Entwicklung benutzerdefinierter Studio-Build-Tools zu erhalten.Siehe die Snippets unten für ein Beispiel.


local Workspace = game:GetService("Workspace")
-- Finished moving a selection; make joints
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end

local Workspace = game:GetService("Workspace")
-- Started moving a selection; break joints
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end

Parameter

objects: Instances

Ein Array von BaseParts für die, bei denen Gelenke gebrochen werden sollen.

Standardwert: ""

Rückgaben

()

ZoomToExtents

()
Plugin-Sicherheit

Positionen und Zooms die Workspace.CurrentCamera um das Ausmaß von BaseParts derzeit im Workspace anzuzeigen.

Diese Funktion wurde in der, jetzt entfernten, Schaltfläche "Zum Ausmaß hinzoomen" in Roblox Studio verwendet.Es zeigt ein ähnliches Verhalten wie die Funktion "Zoom To" (Tastenkombination), zeigt aber die Grenzen des Workspace anstatt des derzeit ausgewählten Objekts.

Diese Funktion kann in Skripten nicht verwendet werden, funktioniert aber in der Befehlsleiste oder in Plugins.


Rückgaben

()

Ereignisse

PersistentLoaded

Dieses Ereignis wird ausgelöst, wenn ein Spieler alle aktuellen dauerhaften Modelle und teilfreie atomare Modelle erhalten hat.Der player-Parameter zeigt an, welcher Spieler alle anwendbaren Instanzen erhalten hat.

Beachten Sie, dass die Erfahrungsladung vor der dauerhaften Ladung erfolgt und das Feuern des Ereignisses DataModel.Loaded nicht darauf hinweist, dass alle dauerhaften Modelle vorhanden sind.

Parameter

player: Player