Workspace
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Il lavoro principale di Workspace è quello di mantenere oggetti che esistono nel Mondo3D, effettivamente BaseParts e Attachments .Mentre tali oggetti sono discendenti di Workspace , saranno attivi.Per BaseParts , questo significa che verranno resi e interagiranno fisicamente con altre parti e il Mondo.Per Attachments , questo significa che gli oggetti decorati a loro, come ParticleEmitters , Beams e BillboardGuis , Renderizzare.
Capire questo comportamento è importante, poiché significa che gli oggetti possono essere rimossi da Workspace quando non sono necessari.Ad esempio, la mappa Models può essere rimossa quando viene riprodotta una mappa diversa.Gli oggetti che non sono immediatamente necessari nel mondo 3D sono generalmente memorizzati in ReplicatedStorage o ServerStorage .
Nel suo ruolo di titolare di oggetti 3D attivi, Workspace include una serie di utili funzioni relative a parti, loro posizioni e giunture tra di esse.
Accedere allo spazio di lavoro
Workspace può essere accessato in diversi modi, tutti i quali sono validi.
- workspace
- game:GetService("Workspace")
- game.Workspace
Notizie
- Gli oggetti che richiedono adornamento, come ParticleEmitters e BillboardGuis , saranno nella posizione
(0, 0, 0) quando genitori a Workspace senza che sia Impostareun adornatore altrimenti. - I metodi Model:MakeJoints() e Model:BreakJoints() ereditati dalla classe Model vengono sovrascritti da Workspace:MakeJoints() e Workspace:BreakJoints() che possono essere utilizzati solo nei plugin.
- È impossibile eliminare Workspace .
- L'oggetto attuale di un cliente può essere accessato utilizzando la Proprietà.
- L'oggetto Terrain può essere accessato utilizzando la ProprietàWorkspace.Terrain.
Sommario
Proprietà
La densità dell'aria a livello del Livello, utilizzata nel modello di forza aerodinamica.
Determina se le risorse create da altri utenti possono essere vendute nel Gioco.
Specifica la modalità di riduzione dell'animazione per il client locale.
L'oggetto Camera utilizzato dal Giocatorelocale.
La quantità di tempo, in secondi, che il gioco è stato in esecuzione.
Determina l'altezza a cui cadono BaseParts e il loro antenato Models vengono rimossi da Workspace .
Determina se il motore fisico calcola le forze aerodinamiche su BaseParts la cui proprietà EnableFluidForces è vera.
Specifica il vector del vento globale per l'erba del terreno animata, le nuvole dinamiche e le particelle.
Determina l'accelerazione dovuta alla gravità applicata alla caduta BaseParts .
Abilita il supporto per le restrizioni per IKControls. Se disabilitato, IKControls ignorano le restrizioni fisiche.
Imposta se le teste dei personaggi e gli accessori dovrebbero essere scaricati come MeshParts.
Controlla la logica utilizzata per selezionare la parte radice dell'assemblaggio quando si utilizza una qualsiasi delle restrizioni del movimento.
Imposta come il solver avanzerà la simulazione fisica in avanti nel tempo.
Configura quando il motore riprende i gestori di eventi.
Configura come il motore decida quando trasmettere contenuti lontano dai giocatori.
Se lo streaming di contenuti è abilitato per il Posto.
Determina se StreamingIntegrityMode è attivo.
Distanza minima a cui il contenuto verrà trasmesso ai giocatori con priorità elevata.
Distanza massima a cui i contenuti verranno trasmessi ai giocatori.
Determina se parts in diversi gruppi impostati per non sovrapporsi ignorerà le collisioni e gli eventi di tocco.
Imposta il livello di dettaglio sul modello per le esperienze con streaming di istanza abilitato.
Controlla il comportamento di streaming del modello su Models quando l' streaming delle istanze è abilitato.
La parte principale del Model , o nil se non esplicitamente impostata.
Proprietà utilizzata solo dall'editor per ridimensionare il modello attorno al suo asse. Impostare questa proprietà sposterà la scala come se Model/ScaleTo fosse stata chiamata su di essa.
Determina dove si trova il punto di rotazione di un che non ha un set è situato.
Metodi
Restituisce il numero di BaseParts che sono considerati fisicamente attivi, a causa di essere stati recentemente sotto l'influenza della fisica.
Restituisce un intero, tra 0 e 100, che rappresenta la percentuale di tempo reale a cui la simulazione fisica è attualmente ridotta.
Restituisce il numero di fotogrammi al secondo in cui la fisica viene attualmente simulata.
Restituisce l'ora Unix del Serverin secondi.
Crea giunture tra le parti specificate Parts e qualsiasi parte toccante a seconda delle superfici delle parti e del modo di creazione delle giunte specificato.
Restituisce true se il gioco ha l'attivatore del solver PGS Physics abilitato.
Rompe tutti i giunti tra il BaseParts e gli altri BaseParts .
Posiziona e ingrandisce il Workspace.CurrentCamera per mostrare l'estensione di BaseParts attualmente nel Workspace .
Restituisce vero se una qualsiasi delle BasePart date tocca altre parti.
Lancia una forma di blocco in una direzione data e restituisce un RaycastResult se la forma colpisce una BasePart o Terrain cellula.
Restituisce un array di parti le cui scatole di confezionamento si sovrappongono a una data Quadro di selezione.
Restituisce un array di parti le cui scatole di confezionamento si sovrappongono a una data sfera.
Restituisce un array di parti il cui spazio occupato è condiviso con la parte data.
- IKMoveTo(part : BasePart,target : CFrame,translateStiffness : number,rotateStiffness : number,collisionsMode : Enum.IKCollisionsMode):()
Sposta la parte specificata nella posizione specificata attraverso la cinematica inversa piuttosto che spostarla direttamente lì per garantire che qualsiasi articolazione, vincolo o collisione a cui la parte partecipa rimanga fisicamente soddisfatta.
Lancia un raggio utilizzando un'origine, una direzione e un'opzione RaycastParams opzionale, quindi restituisce un RaycastResult se un oggetto idoneo o un terreno interseca il raggio.
- Spherecast(position : Vector3,radius : number,direction : Vector3,params : RaycastParams):RaycastResult?
Lancia una forma sferica in una direzione data e restituisce un RaycastResult se la forma colpisce una BasePart o Terrain cellula.
Avanza la simulazione per le parti nel mondo in avanti in base a un incremento di tempo specificato e a un set opzionale di BaseParts .
Imposta questo modello per essere persistente per il giocatore specificato. ModelStreamingMode deve essere impostato su PersistentPerPlayer perché il comportamento venga cambiato come risultato dell'aggiunta.
Restituisce una descrizione di un volume che contiene tutte le parti di un modello.
Restituisce la dimensione della più piccola scatola di confine che contiene tutto il BaseParts in Model, allineata con la Model.PrimaryPart se è impostata.
Restituisce tutti gli oggetti Player che questo oggetto modello è persistente per.Il comportamento varia a seconda se questo metodo viene chiamato da un Script o da un LocalScript.
Restituisce la scala canonica del modello, che predefinisce 1 per i modelli appena creati e cambierà man mano che verrà scala tramite Model/ScaleTo .
Sposta il PrimaryPart a la posizione data. Se una parte primaria non è stata specificata, verrà utilizzata la parte radice del modello.
Rende questo modello non più persistente per il giocatore specificato.ModelStreamingMode deve essere impostato su PersistentPerPlayer perché il comportamento venga modificato come risultato della rimozione.
Imposta il fattore di ridimensionamento del modello, regolando la dimensione e la posizione di tutte le istanze discendenti in modo che abbiano quel fattore di ridimensionamento rispetto alle loro dimensioni iniziali e alla posizione quando il fattore di ridimensionamento era 1.
Sposta un Model con lo spostamento dato Vector3 , preservando l'orientamento del modello.Se un altro BasePart o Terrain esiste già nella nuova posizione allora il Model sovrapporrà l'oggetto dichiarato.
Ottiene il punto focale di un PVInstance .
Trasforma il PVInstance insieme a tutti i suoi discendenti PVInstances in modo che il punto di rotazione sia ora situato all'interno del CFrame specificato.
Eventi
Si accende quando modelli persistenti sono stati inviati al Giocatorespecificato.
Proprietà
AirDensity
Il livello del suolo ( Y di 0) della densità dell'aria in unità RMU/stud³ (vedi Unità Roblox ), utilizzato per calcolare la forza aerodinamica se è .Il predefinito corrisponde alla densità dell'aria al livello del mare realistica a temperatura e pressione standard.La densità dell'aria diminuisce man mano che l'altitudine Y aumenta, raggiungendo il 5% del suo valore a livello del suolo a 100.000 studs.Sotto Y di 0, la densità dell'aria è fissa al valore di input.
AllowThirdPartySales
Questa proprietà Workspace determina se le risorse create da altri usi possono essere vendute nel Gioco.
Cosa sono le vendite di terze parti?
Quando questo valore è falso, come è per impostazione predefinita, solo le risorse create dal creatore del luogo (che sia un giocatore o un Gruppo) e Roblox possono essere vendute utilizzando MarketplaceService .
Nella maggior parte dei casi, i giochi non hanno bisogno di vendere risorse di terzi.Tuttavia, alcuni giochi come le chat di scambio richiedono questa funzione e quindi esistono come opzione di opt-in.
Quali prodotti di terze parti posso vendere?
Nota, prodotti per sviluppatori possono essere venduti solo nel gioco con cui sono associati, indipendentemente da ciò che AllowThirdPartySales è impostato su.Questa proprietà influisce su Pass di gioco e abbigliamento.
AvatarUnificationMode
ClientAnimatorThrottling
Specifica il Enum.ClientAnimatorThrottlingMode da utilizzare per il client locale.
Quando è abilitato, le animazioni su istanze remotamente simulate Model inizieranno a rallentare. Il rallentatore calcola l'intensità di rallentamento utilizzando:
- FPS in gioco
- Numero di animazioni attive
CurrentCamera
L'oggetto Camera utilizzato dal Giocatorelocale.
Come usare la fotocamera attuale
Quando si cerca l'oggetto di un cliente Camera , utilizza questa proprietà piuttosto che cercare un figlio di Workspace chiamato "Fotocamera".
Quando impostate questa Proprietà, tutti gli altri oggetti Camera nella Workspace sono distrutti, incluso il precedente CurrentCamera.Se impostate questa proprietà a nil o a una fotocamera che non è un discendente dello Spazio di lavoro (o il CurrentCamera è altrimenti distrutto), verrà creata e assegnata una nuova Camera .Evita questi scenari, poiché distruggere la fotocamera può avere conseguenze non intese.
Per ulteriori informazioni, vedi Scripting della fotocamera.
DistributedGameTime
La quantità di tempo, in secondi, che il gioco è stato in esecuzione.
Nonostante il titolo, questo valore non è attualmente "Distribuito" attraverso il client e il Server.Invece, sul server rappresenta quanto tempo il server è in esecuzione.Sul client, rappresenta quanto tempo il client è stato connesso al Server.
Gli sviluppatori non dovrebbero fare affidamento sul comportamento sopra riportato e è possibile che questa proprietà venga sincronizzata attraverso i client e il server in futuro.
Chi cerca il tempo dal momento che il programma ha iniziato a funzionare dovrebbe usare invece la funzione 'time'.Vedi qui sotto per un confronto tra DistributedGameTime e le sue alternative.
local Workspace = game:GetService("Workspace")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
FallHeightEnabled
FallenPartsDestroyHeight
Questa proprietà determina l'altezza in cui il motore Roblox rimuove automaticamente le cadute BaseParts e il loro antenato Models da Workspace da genitori a nil .Questo è per impedire che parti che sono cadute dalla mappa continuino a cadere per sempre.
Se una parte viene rimossa a causa di questo comportamento è l'ultima parte in un Model , anche quel modello verrà rimosso.Questo si applica a tutti gli antenati del modello della parte.
Questa proprietà è bloccata tra -50,000 e 50,000 perché BaseParts non simula o si rende correttamente a una grande distanza dall'origine a causa di inaccurzze di precisione galleggianti.
Questa proprietà può essere letta dagli script, ma può essere impostata solo dai plugin, dalla barra dei comandi o dalla finestra delle proprietà in Studio.
FluidForces
Con questa proprietà abilitata, il motore fisico calcola le forze aerodinamiche su BaseParts la cui proprietà EnableFluidForces è vera.Il predefinito, Default , disabilita le forze aerodinamiche.Si noti che questa proprietà non può essere impostata tramite scripting e invece deve essere attivata in Studio.
GlobalWind
Questa proprietà specifica la direzione e la forza con cui il vento soffia attraverso l'esperienza, influenzando l'erba del terreno, le nuvole dinamiche e le particelle.Vedi l'articolo Vento globale per i dettagli.
Gravity
Determina l'accelerazione dovuta alla gravità applicata alla caduta BaseParts .Questo valore è misurato in studs al secondo quadrato e per impostazione predefinita è impostato su 196,2 studs/second 2 .Cambiando questo valore, gli sviluppatori possono simulare gli effetti di gravità più bassa o più alta nel Gioco.
Campioni di codice
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.
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
Abilita il supporto per le restrizioni per IKControls.Il valore Default è lo stesso di Enabled .Se disabilitato, IKControls ignorano le restrizioni fisiche.Vedi IKControl per dettagli aggiuntivi.
InsertPoint
MeshPartHeadsAndAccessories
Imposta se le teste dei personaggi e gli accessori dovrebbero essere scaricati come MeshParts .Il valore Default è lo stesso di Enabled .Se questa funzione è abilitata, gli avatar integrati useranno MeshParts per la testa e gli accessori del personaggio.
ModelStreamingBehavior
MoverConstraintRootBehavior
Controlla la logica utilizzata per selezionare la parte radice dell'assemblaggio per i meccanismi che utilizzano una qualsiasi delle seguenti restrizioni:
Quando questa proprietà è impostata su Enum.MoverConstraintRootBehaviorMode.Enabled , queste restrizioni verranno ignorate quando si seleziona la parte radice dell'assemblaggio se la restrizione non trasmette forze tra due parti (alcuni esempi sono AngularVelocity.ReactionTorqueEnabled impostati su false , AlignPosition.ReactionForceEnabled impostati su false , o AlignOrientation.Mode impostati su Enum.OrientationAlignmentMode.OneAttachment ).
Quando questa proprietà è impostata su Enum.MoverConstraintRootBehaviorMode.Disabled, queste restrizioni possono essere erroneamente considerate quando si seleziona la parte radice dell'assemblaggio, causando incongruenze nella proprietà di rete e ritardi quando si aggiungono queste restrizioni a un meccanismo.
PathfindingUseImprovedSearch
PhysicsImprovedSleep
PhysicsSteppingMethod
Imposta come il solver avanzerà la simulazione fisica in avanti nel tempo.Questa opzione non è scriptabile e deve essere impostata dalla proprietà PhysicsSteppingMethod di Workspace all'interno di Studio.Vedi Adaptive Timestepping per i dettagli.
<th>Descrizione</th></tr></thead><tbody><tr><td><b>Adattivo</b></td><td>Il motore tenta di assegnare tariffe di simulazione ottimali per singole assemblaggi di 240 Hz, 120 Hz o 60 Hz.Questa impostazione è ottimizzata per le Prestazione.</td></tr><tr><td><b>Risolto</b></td><td>Tutte le assemblaggi simulate all'interno dello spazio di lavoro avanzeranno a 240 Hz. Questa opzione è la migliore per la stabilità ottimale e l'accuratezza della simulazione.</td></tr><tr><td><b>Basilare</b></td><td>L'attuale predefinito è <b>Fixed</b> .</td></tr></tbody>
Opzione |
---|
Nota che quando le assemblaggi di diversi tassi di simulazione si connettono tramite Constraints o collisioni, il meccanismo combinato passa alla tariffa di simulazione più alta per la stabilità.
PlayerCharacterDestroyBehavior
PrimalPhysicsSolver
RejectCharacterDeletions
RenderingCacheOptimizations
ReplicateInstanceDestroySetting
Retargeting
SandboxedInstanceMode
SignalBehavior
Questa proprietà determina se i gestori di eventi verranno ripresi immediatamente quando si attiva l'evento o rinviati e quindi ripresi a un punto di ripresione successivo.I punti di ripresa attualmente includono:
- Elaborazione di input (si riprende una volta per input da elaborare, vedi UserInputService )
- Script di attesa legacy ripreso come wait() , spawn() e delay()
Per ulteriori informazioni, vedi Eventi delegati.
StreamOutBehavior
I controlli StreamOutBehavior determinano dove verrà scaricato il contenuto in base alle condizioni di memoria del dispositivo o in base al raggio di streaming.
Vedi anche:
- Workspace.StreamingEnabled che controlla se il streaming di contenuti è abilitato
StreamingEnabled
La proprietà StreamingEnabled determina se la trasmissione del contenuto del gioco è abilitata per il Posto.Questa proprietà non è scriptabile e quindi deve essere impostata sull'oggetto Workspace in Studio.
Vedi anche:
StreamingIntegrityMode
Se l'istanza streaming è abilitata, un'esperienza può comportarsi in modi non intesi se il personaggio di un Giocatoresi muove in una regione del mondo che non è stata trasmessa al suo client.La funzione di integrità dello streaming offre un modo per evitare quelle situazioni potenzialmente problematiche.
StreamingMinRadius
La proprietà StreamingMinRadius indica il raggio intorno al personaggio del Giocatoreo l'attuale ReplicationFocus in cui verrà trasmesso il contenuto con la massima priorità.Predefinito su 64 studs.
Si deve prestare attenzione quando si aumenta il raggio minimo predefinito poiché farlo richiederà più memoria e più banda di server a spese di altre componenti.
Vedi anche:
- Workspace.StreamingEnabled che controlla se il streaming di contenuti è abilitato
StreamingTargetRadius
La proprietà StreamingTargetRadius controlla la distanza massima dal personaggio del Giocatoreo dall'attuale ReplicationFocus in cui verrà trasmesso il contenuto.Predefinito su 1024 studs.
Si noti che il motore è autorizzato a mantenere il contenuto precedentemente caricato oltre il raggio di destinazione, memoria permettendo.
Vedi anche:
- Workspace.StreamingEnabled che controlla se il streaming di contenuti è abilitato
Terrain
Questa proprietà è un riferimento all'oggetto Terrain a cui è stato parented il Workspace .

Vedi Terreno ambientale per ulteriori informazioni.
TouchEventsUseCollisionGroups
TouchesUseCollisionGroups
Questa proprietà determina se parts in diversi gruppi impostati per non sovrapporsi ignorerà le collisioni e gli eventi di tocco.Per impostazione predefinita, il valore di questa proprietà è impostato su false .
Quando questa proprietà è abilitata, le parti in gruppi diversi impostate a non sovrapporsi ignoreranno anche la ProprietàCanTouch, simile a come BasePart.CanCollide viene ignorata.Per maggiori informazioni sul comportamento di CanTouch, visita la sua pagina di proprietà.
Metodi
GetNumAwakeParts
Restituisce il numero di BaseParts che sono considerati fisicamente attivi, a causa di essere stati recentemente sotto l'influenza della fisica.
Questa funzione fornisce una misura di quanti BaseParts sono influenzati da, o recentemente sotto l'influenza di, forze fisiche.
local Workspace = game:GetService("Workspace")print(Workspace:GetNumAwakeParts())
Sonno vs Parti svegli
Per garantire un buon Prestazione, Roblox imposta BaseParts in cui la fisica non viene applicata a uno stato "dormiente".BaseParts con BasePart.Anchored impostato su vero, ad esempio, dormirà sempre perché la fisica non si applica a loro.Quando una forza viene applicata a un non ancorato BasePart , verrà applicato uno stato "attivo".Mentre un BasePart è sveglio, il motore fisico di Roblox eseguirà calcoli continui per garantire che le forze fisiche interagiscono correttamente con la parte.Una volta che il BasePart non è più soggetto a forze fisiche, tornerà a uno stato 'dormiente'.
Restituzioni
Il numero di parti sveglie.
GetPhysicsThrottling
Restituisce un intero, tra 0 e 100, che rappresenta la percentuale di tempo reale a cui la simulazione fisica è attualmente ridotta.
Questa funzione può essere utilizzata per determinare se, e in che misura, la riduzione della fisica stia avvenendo.
Cos'è il throttling della fisica?
Il throttling fisico si verifica quando il motore fisico rileva che non può tenere il passo con il gioco in tempo reale.Quando la fisica viene ridimensionata, si aggiorna con meno frequenza causando BaseParts a sembrare più lento.
Senza limitazione, la simulazione fisica sarebbe caduta ulteriormente in ritardo rispetto al Gioco.Questo può portare a tassi di fotogrammi più bassi e ad altri comportamenti indesiderati.
Gli oggetti associati a Humanoids sono esentati dal rallentamento della fisica.
Vedi anche Workspace:SetPhysicsThrottleEnabled() .
Dimostrare il throttling della fisica
Gli sviluppatori dovrebbero sempre evitare di creare luoghi che superino il motore fisico, poiché porta a un'esperienza sub-par per i giocatori.Coloro che desiderano simulare il throttling della fisica per scopi di ricerca, tuttavia, devono creare solo molti Parts molto rapidamente.
local Workspace = game:GetService("Workspace")local i = 0while true doi += 1if i % 5 == 0 thentask.wait()endlocal part = Instance.new("Part", Workspace)end
Restituzioni
La percentuale di tempo reale a cui la simulazione fisica è attualmente ridotta.
GetRealPhysicsFPS
Restituisce il numero di fotogrammi al secondo in cui la fisica viene attualmente simulata.
Utilizzare GetRealPhysicsFPS per combattere gli exploiter
Un uso comune di questa funzione è quello di rilevare se gli exploiter stanno aumentando il loro tasso di fotogramma fisico locale per muoversi più velocemente.Questo viene generalmente fatto confrontando il risultato restituito da GetRealPhysicsFPS di un client con un massimo che non verrà violato nelle normali circostanze (solitamente 65 o 70).Se questo limite viene violato, i developer possono utilizzare la funzione Player:Kick() per rimuovere quel Player dal Gioco.È importante ricordare che, anche se questa pratica può essere efficace a volte, le misure anti-exploiter lato client non sono mai del 100% affidabili.
Restituzioni
Restituisce il numero di fotogrammi al secondo in cui la fisica viene attualmente simulata.
Campioni di codice
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:
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() restituisce l'approssimazione migliore del cliente del tempo attuale sul Server.Questo è utile per creare esperienze sincronizzate poiché ogni client ottiene circa gli stessi risultati indipendentemente dalla loro zona temporale o dall'orologio locale.
Questo restituisce un timestamp Unix, simile a os.time() , che può essere utilizzato con os.date() o con DateTime.fromUnixTimestamp() .
L'timestamp restituito da questa funzione è levigato in modo che:
- È monotonico; il suo valore non diminuirà mai.
- Si muove alla stessa velocità dell'orologio locale entro 0,6%.
GetServerTimeNow() è costoso da chiamare rispetto a DateTime.now() , e è meno preciso di os.clock() , quindi dovrebbe essere utilizzato per assicurarsi che un evento inizi al momento giusto nel mondo reale o per regolare le cose periodicamente per mantenere sincronizzata una serie di eventi.
Questa funzione dipende dal Server, quindi chiamarla da un client che non è connesso lancerà un errore.Si noti inoltre che questa funzione non è adatta per cose come le ricompense a tempo poiché non è sicura rispetto al monitoraggio di tali timer sul Server.
Vedi anche:
- DistributedGameTime , un orologio di gioco
Restituzioni
L'timestamp stimato Unix sul Server.
JoinToOutsiders
Questa funzione crea giunture tra le parti specificate Parts e qualsiasi parte toccante a seconda delle superfici delle parti e del modo di creazione delle giunte specificato.
Questa funzione crea giunture tra le parti specificate e qualsiasi superficie di contatto piatta, a seconda delle superfici delle parti e del modo di creazione delle giunte specificato.
- La colla, gli studs, gli ingressi, l'universale, la saldatura e le superfici lisce creeranno tutte istanze di saldatura.
- Le sfere non si uniranno alla superficie di nulla. I lati arrotondati dei cilindri non si uniranno alla superficie, ma i lati piatti della fine si uniranno.
Il primo parametro è un array di BaseParts .Le giunzioni verranno create solo tra le parti nell'array e non nell'vettore.Le giunte non verranno create tra le parti nell'vettore.
Il secondo parametro è un Enum.JointCreationMode che determina come verranno creati i giunti.Passare in uno dei valori dell'enum, Enum.JointCreationMode.All o Enum.JointCreationMode.Surface, ha lo stesso comportamento che equivale a Join Always
Questa funzione viene utilizzata dallo strumento Move di Roblox Studio quando l'utente termina di spostare una selezione.In combinazione con Plugin:GetJoinMode() e Workspace:UnjoinFromOutsiders() può essere utilizzato per mantenere la funzionalità di join quando si sviluppano strumenti di build personalizzati dello studio.Vedi gli snippet seguenti per un esempio.
local Workspace = game:GetService("Workspace")
-- Spostamento della selezione terminato; crea articolazioni
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end
local Workspace = game:GetService("Workspace")
-- Iniziato a spostare una selezione; rompi i giunti
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end
Parametri
Un array di BaseParts per cui devono essere effettuate delle giunte.
Il Enum.JointCreationMode da utilizzare. Passare in Enum.JointCreationMode.All o Enum.JointCreationMode.Surface ha lo stesso comportamento che equivale a Join Always.
Restituzioni
PGSIsEnabled
Restituisce true se il gioco ha l'attivatore del solver PGS Physics abilitato.
Poiché Workspace.PGSPhysicsSolverEnabled non può essere accessibile dagli script, la funzione PGSIsEnabled consente agli sviluppatori di dire quale soluzione fisica il gioco stia utilizzando.
Restituzioni
Vero se il solvente PGS è abilitato.
UnjoinFromOutsiders
Rompe tutti i giunti tra il BaseParts e gli altri BaseParts .
Questa funzione richiede un array di BaseParts .Nota, le giunte non verranno rotte tra questi BaseParts (uno l'altro), solo tra questi BaseParts e altri BaseParts non nell'vettore.
Questa funzione viene utilizzata dallo strumento Movimento di Roblox Studio quando l'utente inizia a spostare una selezione.In combinazione con Plugin:GetJoinMode() e Workspace:JoinToOutsiders() può essere utilizzato per mantenere la funzionalità di join quando si sviluppano strumenti di build personalizzati di Studio.Vedi gli snippet seguenti per un esempio.
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
Parametri
Un array di BaseParts per cui devono essere rotte le giunte.
Restituzioni
ZoomToExtents
Posiziona e ingrandisce il Workspace.CurrentCamera per mostrare l'estensione di BaseParts attualmente nel Workspace .
Questa funzione era utilizzata nel, ora rimosso, pulsante 'Zoom To Extents' in Roblox Studio.Mostra un comportamento simile alla Proprietà'Zoom To' (F Scorciatoia), tuttavia mostra le estensioni del Workspace piuttosto che l'oggetto attualmente selezionato.
Questa funzione non può essere utilizzata negli script ma funzionerà nella barra dei comandi o nei plugin.
Restituzioni
Eventi
PersistentLoaded
Questo evento si attiva ogni volta che un giocatore è stato inviato tutti i modelli persistenti attuali e modelli atomici senza parti.Il parametro player indica quale giocatore ha ricevuto tutte le istanze applicabili.
Nota che il caricamento dell'esperienza avviene prima del caricamento persistente e il lancio dell'evento DataModel.Loaded non indica che tutti i modelli persistenti sono presenti.