Workspace
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Le travail principal de Workspace est de tenir des objets qui existent dans le monde 3D, efficacement BaseParts et Attachments .Bien que de tels objets soient des descendants de Workspace, ils seront actifs.Pour BaseParts , cela signifie qu'ils seront rendus et interagiront physiquement avec d'autres parties et le monde.Pour Attachments , cela signifie que les objets ornés pour eux, tels que ParticleEmitters , Beams et BillboardGuis , s'afficheront.
Comprendre ce comportement est important, car cela signifie que des objets peuvent être supprimés de Workspace lorsqu'ils ne sont pas nécessaires.Par exemple, la carte Models peut être supprimée lorsqu'une carte différente est jouée.Les objets qui ne sont pas immédiatement nécessaires dans le monde 3D sont généralement stockés dans ReplicatedStorage ou ServerStorage .
Dans son rôle de détenteur d'objets 3D actifs, Workspace inclut un certain nombre de fonctions utiles relatives aux parties, à leurs positions et aux jointures entre elles.
Accès à l'espace de travail
Workspace peut être accédé de plusieurs façons, toutes valides.
- workspace
- game:GetService("Workspace")
- game.Workspace
Notations
- Les objets qui nécessitent une décoration, tels que ParticleEmitters et BillboardGuis , seront à la position
(0, 0, 0) lorsqu'ils sont parentés à Workspace sans qu'un décorateur ne soit autrement configurer. - Les méthodes Model:MakeJoints() et Model:BreakJoints() héritées de la classe Model sont remplacées par Workspace:MakeJoints() et Workspace:BreakJoints() qui ne peuvent être utilisées que dans les plugins.
- Il est impossible de supprimer Workspace .
- L'objet actuel d'un client peut être accédé en utilisant la propriété .
- L'objet Terrain peut être accédé en utilisant la propriété Workspace.Terrain.
Résumé
Propriétés
La densité de l'air au niveau du sol, utilisée dans le modèlisationde force aérodynamique.
Détermine si les ressources créées par d'autres utilisateurs peuvent être vendues dans le jeu.
Spécifie le mode de ralentissement d'animation pour le client local.
L'objet Camera utilisé par le joueur local.
La quantité de temps, en secondes, pendant laquelle le jeu a fonctionné.
Détermine la hauteur à laquelle tombent BaseParts et leur ancêtre Models sont retirés de Workspace .
Détermine si le moteur de physique calcule des forces aérodynamiques sur BaseParts dont la propriété EnableFluidForces est vraie.
Spécifie le vecteur de vent global pour l'herbe de terrain animée, les nuages dynamiques et les particules.
Détermine l'accélération due à la gravité appliquée à la chute BaseParts .
Active le support des contraintes pour les IKControls. S'il est désactivé, les IKControls ignorent les contraintes physiques.
Définit si les têtes de personnage et les accessoires doivent être téléchargés en tant que parties de maillage.
Contrôle la logique utilisée pour sélectionner la partie racine d'assemblage lors de l'utilisation de l'une des contraintes de déplacement.
Définit comment le solveur avancera la simulation physique dans le temps.
Configure lorsque le moteur reprend les gestionnaires d'événements.
Configure comment le moteur décide quand diffuser le contenu loin des joueurs.
Si le streaming de contenu est activé pour l'emplacement.
Détermine si le mode StreamingIntegrity est actif.
Distance minimale à laquelle le contenu sera diffusé aux joueurs prioritaires élevés.
Distance maximale à laquelle le contenu sera diffusé aux joueurs.
Une référence à l'objet de référence Terrain parenté au Workspace .
Détermine si parts dans différents groupes réglés pour ne pas se chevaucher ignoreront les collisions et les événements de contact.
Définit le niveau de détail sur le modèle pour les expériences avec streaming d'instance activé.
Contrôle le comportement de streaming du modèle sur Models lorsque le streaming d'instance est activé.
La partie principale de la Model ou nil si elle n'est pas explicitement configurer.
Propriété réservée aux éditeurs utilisée pour dimensionner le modèle autour de son pivot. Le réglage de cette propriété déplacera la mesure comme si Model/ScaleTo était appelé sur elle.
Détermine où se trouve le pivot d'un Model qui ne fait pas **** avoir un ensemble Model.PrimaryPart.
Méthodes
Renvoie le nombre de BaseParts qui sont jugés physiquement actifs, en raison d'être récemment sous l'influence de la physique.
Renvoie un entier, entre 0 et 100, représentant le pourcentage de temps réel auquel la simulation de physique est actuellement ralentie.
Renvoie le nombre de cadres par seconde auquel la physique est actuellement simulée.
Renvoie le temps Unix du serveur en secondes.
Crée des jointures entre les parties spécifiées Parts et toute partie touchante en fonction des surfaces des parties et du mode de création de jointure spécifié.
Renvoie true si le jeu a activé le solveur de physique PGS.
Brise tous les joints entre le BaseParts et les autres BaseParts spécifiés.
Positionne et zoome le Workspace.CurrentCamera pour montrer l'étendue de BaseParts actuellement dans le Workspace .
Retourne vrai si l'une des parties données BasePart touche n'importe quelle autre partie.
Lance une forme de bloc dans une direction donnée et renvoie un RaycastResult si la forme frappe une cellule BasePart ou Terrain .
Retourne un ensemble de parties dont les boîtes de bordure se chevauchent sur une boîte de modélisationdonnée.
Retourne un ensemble de parties dont les boîtes de bordure se chevauchent sur une sphère donnée.
Retourne un ensemble de parties dont l'espace occupé est partagé avec la partie donnée.
- IKMoveTo(part : BasePart,target : CFrame,translateStiffness : number,rotateStiffness : number,collisionsMode : Enum.IKCollisionsMode):()
Déplace la partie spécifiée à l'emplacement spécifié via une cinématique inversée plutôt que de la déplacer directement là-bas pour assurer que toutes les articulations, les contraintes ou les collisions auxquelles cette partie participe restent physiquement satisfaites.
Lance un rayon en utilisant une origine, une direction et un RaycastParams optionnel, puis renvoie un RaycastResult si un objet éligible ou un terrain intersecte le rayon.
- Spherecast(position : Vector3,radius : number,direction : Vector3,params : RaycastParams):RaycastResult?
Lance une forme sphérique dans une direction donnée et renvoie un RaycastResult si la forme frappe une cellule BasePart ou Terrain .
Avance la simulation pour les parties dans le monde en fonction d'une augmentation de temps spécifiée et d'un ensemble facultatif de BaseParts.
Définit ce modèle pour être persistant pour le joueur spécifié.Model.ModelStreamingMode doit être défini sur PersistantParJoueur pour que le comportement soit modifié en raison de l'ajout.
Renvoie une description d'un volume qui contient toutes les parties d'un modèle.
Renvoie la taille de la plus petite boîte de bordure qui contient tout le BaseParts dans le Model, alignée sur le Model.PrimaryPart si elle est configurer.
Renvoie tous les objets Player que cet objet de modèle est persistant pour.Le comportement varie en fonction de si cette méthode est appelée à partir d'un Script ou d'un LocalScript .
Renvoie la taille canonique du modèlisation, qui est par défaut de 1 pour les modèles créés récemment et qui changera lorsqu'elle sera mise à l'échelle via Model/ScaleTo.
Déplace le PrimaryPart à la position donnée. Si aucune partie principale n'a été spécifiée, la partie racine du modèle sera utilisée.
Rend ce modèle non persistant pour le joueur spécifié.Model.ModelStreamingMode doit être défini sur PersistantParJoueur pour que le comportement soit modifié en raison de la suppression.
Définit le facteur d'échelle du modèlisation, ajustant la taille et l'emplacement de toutes les instances descendantes afin qu'elles aient ce facteur d'échelle par rapport à leurs tailles et emplacements initiaux lorsque le facteur d'échelle était de 1.
Déplace un Model par le décentragedonné Vector3, en conservant l'orientation du modèlisation.Si un autre BasePart ou Terrain existe déjà à la nouvelle position, alors le Model couvrira cet objet.
Obtient le pivot d'un PVInstance .
Transforme le PVInstance ainsi que tous ses descendants PVInstances de sorte que le pivot est désormais situé au point spécifié CFrame.
Évènements
Se déclenche lorsque des modèles persistants ont été envoyés au joueur spécifié.
Propriétés
AirDensity
La densité de l'air au niveau du sol ( Y de 0) dans les unités RMU/stud³ (voir Unités Roblox ), utilisée pour calculer la force aéro dynamique si Workspace.FluidForces est Experimental.La valeur par défaut correspond à une densité de l'air au niveau de la mer réaliste à température et pression standard.La densité de l'air diminue à mesure que l'altitude Y augmente, atteignant 5% de sa valeur au niveau du sol à 100 000 studs.En dessous de Y de 0, la densité de l'air est fixée à la valeur d'entrée.
AllowThirdPartySales
Cette propriété Workspace détermine si les ressources créées par d'autres utilisations peuvent être vendues dans le jeu.
Quelles sont les ventes de tiers ?
Lorsque cette valeur est fausse, comme c'est le cas par défaut, seules les ressources créées par le créateur de lieu (qu'il s'agisse d'un joueur ou d'un groupe) et Roblox peuvent être vendues en utilisant MarketplaceService .
Dans la plupart des cas, les jeux n'ont pas besoin de vendre des ressources tierces.Cependant, certains jeux comme les bars d'échange nécessitent cette fonctionnalité et existent donc en tant qu'option d'acceptation.
Quels produits tiers puis-je vendre ?
Remarque, les produits des développeurs ne peuvent être vendus que dans le jeu avec lequel ils sont associés, quelle que soit la valeur de AllowThirdPartySales définie.Cette propriété affecte passes de jeu et vêtements.
AvatarUnificationMode
ClientAnimatorThrottling
Spécifie le Enum.ClientAnimatorThrottlingMode à utiliser pour le client local.
Lorsqu'il est activé, les animations sur les instances simulées à distance Model commenceront à ralentir. Le ralentisseur calcule l'intensité de ralentissement en utilisant :
- FPS en jeu
- Nombre d'animations actives
CurrentCamera
L'objet Camera utilisé par le joueur local.
Comment utiliser la caméra actuelle
Lorsque vous recherchez l'objet d'un client Camera, utilisez cette propriété plutôt que de rechercher un enfant nommé Workspace « Caméra ».
Lorsque vous définissez cette propriété, tous les autres objets Camera dans le Workspace sont détruits, y compris le précédent CurrentCamera.Si vous définissez cette propriété à nil ou à une caméra qui n'est pas un descendant de l'espace de travail (ou que le CurrentCamera est autrement détruit), une nouvelle Camera sera créée et attribuée.Évitez ces scénarios, car la destruction de la caméra peut avoir des conséquences imprévues.
Pour plus d'informations, voir Programmer la caméra.
DistributedGameTime
La quantité de temps, en secondes, pendant laquelle le jeu a fonctionné.
Malgré le titre, cette valeur n'est actuellement pas « distribuée » sur le client et le serveur.Au lieu de cela, sur le serveur, il représente la durée pendant laquelle le serveur a fonctionné.Sur le client, il représente la durée pendant laquelle le client a été connecté au serveur.
Les développeurs ne doivent pas s'appuyer sur le comportement ci-dessus, et il est possible que cette propriété soit synchronisée sur les clients et le serveur à l'avenir.
Ceux qui recherchent le temps écoulé depuis le démarrage du programme devraient plutôt utiliser la fonction 'time'.Voir ci-dessous pour une comparaison entre DistributedGameTime et ses alternatives.
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
Cette propriété détermine la hauteur à laquelle le moteur Roblox supprime automatiquement la chute de BaseParts et son ancêtre Models de Workspace en les parentant à nil .C'est pour empêcher que les parties qui se sont éloignées de la carte continuent de tomber pour toujours.
Si une partie est supprimée en raison de ce comportement, le modèle sera également supprimé si c'est la dernière partie dans un Model.Cela s'applique à tous les ancêtres de modèle de la partie.
Cette propriété est comprise entre -50,000 et 50,000 car BaseParts ne simule pas ou ne rend pas correctement à une grande distance de l'origine en raison d'imprécisions en virgule flottante.
Cette propriété peut être lue par des scripts, mais ne peut être définie que par des plugins, la barre de commande ou la fenêtre des propriétés dans Studio.
FluidForces
Avec cette propriété activée, le moteur de physique calcule les forces aérodynamiques sur BaseParts dont la propriété EnableFluidForces est vraie.La valeur par défaut, Default , désactive les forces aérodynamiques.Notez que cette propriété ne peut pas être définie via le scripting et doit être activée dans Studio à la place.
GlobalWind
Cette propriété spécifie la direction et la force par lesquelles le vent souffle à travers l'expérience, affectant l'herbe du terrain, les nuages dynamiques et les particules.Voir l'article Vent global pour plus de détails.
Gravity
Détermine l'accélération due à la gravité appliquée à la chute BaseParts .Cette valeur est mesurée en studs par seconde carrée et par défaut est réglée sur 196,2 studs/seconde 2.En modifiant cette valeur, les développeurs peuvent simuler les effets de gravité inférieure ou supérieure dans le jeu.
Échantillons de code
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
Active le support des contraintes pour les IKControls.La valeur Default est la même que Enabled.Si désactivé, les contrôles IK ignorent les contraintes physiques.Voir IKControl pour des détails supplémentaires.
InsertPoint
MeshPartHeadsAndAccessories
Définit si les têtes de caractère et les accessoires doivent être téléchargés en tant que MeshParts.La valeur Default est la même que Enabled.Si cette fonctionnalité est activée, les avatars intégrés utiliseront MeshParts pour la tête et les accessoires du personnage.
ModelStreamingBehavior
MoverConstraintRootBehavior
Contrôle la logique utilisée pour sélectionner la partie racine d'assemblage pour les mécanismes qui utilisent l'une des contraintes suivantes :
Lorsque cette propriété est définie sur , ces contraintes seront ignorées lors de la sélection de la partie racine de l'assemblage si la contrainte ne transmet pas de forces entre deux parties (certains exemples étant définis sur , définis sur ou définis sur ).
Lorsque cette propriété est définie sur Enum.MoverConstraintRootBehaviorMode.Disabled, ces contraintes peuvent être erronément prises en compte lors de la sélection de la partie racine d'assemblage, ce qui entraîne une propriété de réseau incohérente et des délais lors de l'ajout de ces contraintes à un mécanisme.
PathfindingUseImprovedSearch
PhysicsImprovedSleep
PhysicsSteppingMethod
Définit comment le solveur avancera la simulation physique dans le temps.Cette option n'est pas scriptable et doit être définie à partir de la propriété PhysicsSteppingMethod de Espace de travail dans Studio.Voir adaptation de l'horloge adaptative pour les détails.
<th>Avertissement</th></tr></thead><tbody><tr><td><b>Adaptatif</b></td><td>Le moteur essaie d'attribuer des taux de simulation optimaux pour des assemblages individuels de 240 Hz, 120 Hz ou 60 Hz.Ce paramètre est optimisé pour les performances.</td></tr><tr><td><b>Corrigé</b></td><td>Toutes les assemblages simulés à l'intérieur de l'espace de travail avanceront à 240 Hz. Cette option est la meilleure pour une stabilité et une précision de simulation optimales.</td></tr><tr><td><b>Par défaut</b></td><td>La valeur par défaut actuelle est <b>Corrigé</b>.</td></tr></tbody>
Aoption |
---|
Notez que lorsque des assemblages de différents taux de simulation se connectent via Constraints ou des collisions, le mécanisme combiné passera par défaut au taux de simulation le plus élevé pour la stabilité.
PlayerCharacterDestroyBehavior
PrimalPhysicsSolver
RejectCharacterDeletions
RenderingCacheOptimizations
ReplicateInstanceDestroySetting
Retargeting
SandboxedInstanceMode
SignalBehavior
Cette propriété détermine si les gestionnaires d'événements seront repris immédiatement lorsque l'événement se déclenchera, ou reportés et repris à un point de reprise ultérieur.Les points de reprise incluent actuellement :
- Traitement des entrées (reprend une fois par entrée à traiter, voir UserInputService )
- Script d'attente hérité reprendre comme wait() , spawn() , et delay()
Pour plus d'informations, voir Événements différés.
StreamOutBehavior
Les contrôles StreamOutBehavior sont ceux où le contenu sera déchargé à partir du ReplicationFocus en fonction des conditions de mémoire du périphérique, ou en fonction du rayon de diffusion.
Voir aussi :
- Workspace.StreamingEnabled qui contrôle si le streaming de contenu est activé
StreamingEnabled
La propriété StreamingEnabled détermine si le streaming de contenu de jeu est activé pour le emplacement.Cette propriété n'est pas scriptable et doit donc être définie sur l'objet Espace de travail dans Studio.
Voir aussi :
StreamingIntegrityMode
Si l'instance streaming est activée, une expérience peut se comporter de manières non intentionnelles si le personnage d'un joueur se déplace dans une région du monde qui n'a pas été diffusée vers son client.La fonction d'intégrité de diffusion offre un moyen d'éviter ces situations potentiellement problématiques.
StreamingMinRadius
La propriété StreamingMinRadius indique le rayon autour du personnage du joueur ou le ReplicationFocus actuel dans lequel le contenu sera diffusé en priorité élevée.Défaut à 64 studs.
Il faut faire attention lors de l'augmentation du rayon minimum par défaut puisque cela nécessitera plus de mémoire et plus de bande passante du serveur au détriment d'autres composants.
Voir aussi :
- Workspace.StreamingEnabled qui contrôle si le streaming de contenu est activé
StreamingTargetRadius
La propriété StreamingTargetRadius contrôle la distance maximale à partir du personnage du joueur ou de la ReplicationFocus dans laquelle le contenu sera diffusé.Défaut à 1024 studs.
Notez que le moteur est autorisé à conserver le contenu précédemment chargé au-delà du rayon cible, mémoire permettant.
Voir aussi :
- Workspace.StreamingEnabled qui contrôle si le streaming de contenu est activé
Terrain
Cette propriété est une référence à l'objet Terrain parenté au Workspace .

Voir terrain environnemental pour plus d'informations.
TouchEventsUseCollisionGroups
TouchesUseCollisionGroups
Cette propriété détermine si parts dans différents groupes réglés pour ne pas se heurter ignoreront les collisions et les événements de contact.Par défaut, la valeur de cette propriété est définie à false .
Lorsque cette propriété est activée, les parties appartenant à des groupes différents qui ne doivent pas se chevaucher ignoreront également la propriété CanTouch, de manière similaire à la façon dont BasePart.CanCollide est ignoré.Pour plus d'informations sur le comportement de CanTouch, visitez sa page de propriété.
Méthodes
GetNumAwakeParts
Renvoie le nombre de BaseParts qui sont jugés physiquement actifs, en raison d'être récemment sous l'influence de la physique.
Cette fonction fournit une mesure du nombre de BaseParts qui sont influencés par, ou récemment sous l'influence de forces physiques.
local Workspace = game:GetService("Workspace")print(Workspace:GetNumAwakeParts())
Sommeil vs parties éveillées
Afin d'assurer une bonne performance, Roblox définit BaseParts dans lequel la physique n'est pas appliquée à un état « dormant ».BaseParts avec BasePart.Anchored réglé sur vrai, par exemple, sera toujours endormi car la physique ne s'applique pas à eux.Lorsqu'une force est appliquée à un état non ancré BasePart, un état activésera appliqué.Pendant qu'un BasePart est réveillé, le moteur de physique Roblox effectuera des calculs continus pour garantir que les forces physiques interagissent correctement avec la partie.Une fois que le BasePart n'est plus soumis à des forces physiques, il reviendra à un état de sommeil.
Retours
Le nombre de parties éveillées.
GetPhysicsThrottling
Renvoie un entier, entre 0 et 100, représentant le pourcentage de temps réel auquel la simulation de physique est actuellement ralentie.
Cette fonction peut être utilisée pour déterminer si, et dans quelle mesure, le ralentissement de la physique se produit.
Qu'est-ce que la physique d'accélération ?
La limitation des physiques se produit lorsque le moteur de physiques détecte qu'il ne peut pas suivre le jeu en temps réel.Lorsque la physique est ralentie, elle se met à jour moins souvent, ce qui fait apparaître BaseParts pour se déplacer plus lentement.
Sans limitation, la simulation de physique tomberait plus loin en désaccord avec le jeu.Cela peut entraîner des taux de cadence inférieurs et d'autres comportements indésirables.
Les objets associés à Humanoids sont exemptés du ralentissement physique.
Voir aussi Workspace:SetPhysicsThrottleEnabled() .
Démonstration de l'accélération de la physique
Les développeurs doivent toujours éviter de créer des endroits qui surchargent le moteur de physique, car cela entraîne une expérience inférieure pour les joueurs.Cependant, ceux qui souhaitent simuler la restriction de la physique à des fins de recherche n'ont besoin que de créer beaucoup de Parts très rapidement.
local Workspace = game:GetService("Workspace")local i = 0while true doi += 1if i % 5 == 0 thentask.wait()endlocal part = Instance.new("Part", Workspace)end
Retours
Le pourcentage de temps réel auquel la simulation de physique est actuellement ralentie.
GetRealPhysicsFPS
Renvoie le nombre de cadres par seconde auquel la physique est actuellement simulée.
Utiliser GetRealPhysicsFPS pour combattre les exploiteurs
Un usage commun de cette fonction est de détecter si les exploiteurs augmentent leur cadence de physique locale pour se déplacer plus rapidement.Cela se fait généralement en comparant le résultat renvoyé par le GetRealPhysicsFPS d'un client à un maximum qui ne sera pas enfreint dans les conditions normales (généralement 65 ou 70).Si cette limite est violée, les développeurs peuvent utiliser la fonction Player:Kick() pour supprimer ce Player du jeu.Il est important de se rappeler que, bien que cette pratique puisse parfois être efficace, les mesures anti-exploiteur côté client ne sont jamais à 100 % fiables.
Retours
Renvoie le nombre de cadres par seconde auquel la physique est actuellement simulée.
Échantillons de code
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() renvoie la meilleure approximation du client de l'heure actuelle sur le serveur.Cela est utile pour créer des expériences synchronisées car chaque client obtiendra environ les mêmes résultats, indépendamment de son fuseau horaire ou de son horloge locale.
Cela renvoie une balise de temps Unix, similaire à os.time() , qui peut être utilisée avec os.date() ou avec DateTime.fromUnixTimestamp() .
L'heure de retour de cette fonction est lissée afin que :
- Il est monotone ; sa valeur ne diminuera jamais.
- Il se déplace au même rythme que l'horloge locale à moins de 0,6 %.
GetServerTimeNow() est coûteux à appeler par rapport à DateTime.now() et est moins précis que os.clock() , il devrait donc être utilisé pour s'assurer qu'un événement commence au bon moment dans le monde réel ou pour ajuster les choses périodiquement pour maintenir une série d'événements en phase.
Cette fonction repose sur le serveur, donc l'appeler à partir d'un client qui n'est pas connecté provoquera une erreur.Notez également que cette fonction n'est pas appropriée pour des choses comme les récompenses à temps, car elle n'est pas sécurisée par rapport au suivi de ces minuteries sur le serveur.
Voir aussi :
- DistributedGameTime , une horloge de jeu
Retours
L'heure d'estampage Unix estimée sur le serveur.
JoinToOutsiders
Cette fonction crée des jointures entre la partie spécifiée Parts et toute partie touchante en fonction des surfaces des parties et du mode de création de jointure spécifié.
Cette fonction crée des jointures entre les parties spécifiées et toute surface de contact plane, en fonction des surfaces des parties et du mode de création de jointure spécifié.
- La colle, les études, les entrées, l'universel, la soudure et les surfaces lisses créeront toutes des instances de soudure.
- Les sphères ne s'assembleront pas à quoi que ce soit. Les côtés arrondis des cylindres ne s'assembleront pas, mais les côtés plats des bords s'assembleront.
Le premier paramètre est un tableau de BaseParts.Les jointures ne seront créées que entre les parties de l'array et non dans l'matrice.Les jointures ne seront pas créées entre les parties de l'matrice.
Le deuxième paramètre est un Enum.JointCreationMode qui détermine comment les jointures seront créées.Le passage dans l'une des valeurs d'enum, Enum.JointCreationMode.All ou Enum.JointCreationMode.Surface , a le même comportement qui équivaut à Rejoindre toujours
Cette fonction est utilisée par l'outil de déplacement Roblox Studio lorsque l'utilisateur termine le déplacement d'une sélection.En combinaison avec Plugin:GetJoinMode() et Workspace:UnjoinFromOutsiders(), il peut être utilisé pour conserver la fonctionnalité de jointure lors du développement d'outils de construction de studio personnalisés.Voir les snippets ci-dessous pour un exemple.
local Workspace = game:GetService("Workspace")
-- Déplacement de sélection terminé ; faire des jointures
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end
local Workspace = game:GetService("Workspace")
-- Début du déplacement d'une sélection ; rupture des jointures
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end
Paramètres
Un ensemble de BaseParts pour qui des jointures doivent être faites.
Le Enum.JointCreationMode à utiliser. Le passage en Enum.JointCreationMode.All ou Enum.JointCreationMode.Surface a le même comportement qui équivaut à Rejoindre toujours.
Retours
PGSIsEnabled
Renvoie true si le jeu a activé le solveur de physique PGS.
Comme Workspace.PGSPhysicsSolverEnabled ne peut pas être accédé par les scripts, la fonction PGSIsEnabled permet aux développeurs de dire à quel solveur de physique le jeu utilise.
Retours
Vrai si le solveur PGS est activé.
UnjoinFromOutsiders
Brise tous les joints entre le BaseParts et les autres BaseParts spécifiés.
Cette fonction nécessite un tableau de BaseParts.Remarque, les jointures ne seront pas rompues entre ces BaseParts (les unes les autres), seulement entre ces BaseParts et d'autres BaseParts non dans l'matrice.
Cette fonction est utilisée par l'outil de déplacement Roblox Studio lorsque l'utilisateur commence à déplacer une sélection.En combinaison avec Plugin:GetJoinMode() et Workspace:JoinToOutsiders(), il peut être utilisé pour conserver la fonctionnalité de jointure lors du développement d'outils de construction personnalisés de Studio.Voir les snippets ci-dessous pour un exemple.
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
Paramètres
Un ensemble de BaseParts pour qui les jointures doivent être rompues.
Retours
ZoomToExtents
Positionne et zoome le Workspace.CurrentCamera pour montrer l'étendue de BaseParts actuellement dans le Workspace .
Cette fonction a été utilisée dans le bouton, maintenant supprimé, 'Zoom vers les extrêts' dans Roblox Studio.Il présente un comportement similaire à la fonctionalité'Zoom vers' (raccourci F), mais il montre les limites de la Workspace plutôt que l'objet sélectionné actuellement.
Cette fonction ne peut pas être utilisée dans les scripts, mais fonctionnera dans la barre de commande ou les plugins.
Retours
Évènements
PersistentLoaded
Cet événement se déclenche chaque fois qu'un joueur a été envoyé tous les modèles persistants actuels et des modèles atomiques sans parties.Le paramètre player indique quel joueur a reçu toutes les instances applicables.
Notez que le chargement de l'expérience se produit avant le chargement persistant, et le tir de l'événement DataModel.Loaded n'indique pas que tous les modèles persistants sont présents.