Workspace

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio

El Renderizar

Entender este comportamiento es importante, ya que significa que los objetos se pueden eliminar del espacio de trabajo cuando no son necesarios. Por ejemplo, el mapa Models se puede eliminar del Workspace cuando se está reproduciendo otro mapa. Los objetos que no se necesitan inmediatamente en el mundo 3D generalmente se al

En su papel como el responsable de los objetos 3D activos, Workspace incluye una serie de funciones útiles relacionadas con las partes, sus posiciones y sus conexiones entre ellas.

Accediendo al espacio de trabajo

Workspace se puede acceder a él de varias maneras, todas las cuales son válidas.

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

Notas

  • Los objetos que requieren adornos, como ParticleEmitters y BillboardGuis, estarán en la posición 0,0,0 cuando sean padres de Workspace sin que se haya establecerpreviamente un adorno.
  • Los métodos Class.Model:MakeJoints() y Class.Model:BreakJoints() heredados de la clase Class.Model se reemplazan por 1>Class.Workspace:MakeJoints() y 4>Class.Workspace:BreakJoints() , que solo se pueden usar en los plugins.
  • Es imposible eliminar Workspace .
  • Workspace limpia automáticamente BaseParts que caen debajo de FallenPartsDestroyHeight .
  • El objeto actual de Camera de un cliente se puede acceder a él usando la propiedad Workspace.CurrentCamera.
  • El objeto Terrain se puede acceder a él usando la propiedad Workspace.Terrain.

Resumen

Propiedades

Propiedades heredados de Model
  • Establece el nivel de detalle en el modelo para las experiencias con transmisión de instancia habilitada.

  • Controla el comportamiento de streaming del modelo en Models cuando se habilita el streaming de instancia.

  • Leer paralelo

    La parte principal de Model , o nil si no se establecerexplícitamente.

  • No replicado
    No programable
    Leer paralelo

    Propiedad de Editor únicamente usada para escalar el modelo alrededor de su eje. Al configurar esta propiedad, se moverá la escala como si se hubiera llamado a Model/ScaleTo .

  • No replicado
    Leer paralelo

    Determina dónde se encuentra el eje de un Model que no tiene Class.Model.PrimaryPart establecido.

Propiedades heredados de PVInstance

Métodos

Métodos heredados de WorldRootMétodos heredados de Model
  • AddPersistentPlayer(playerInstance : Player):void

    Establece este modelo para ser persistente para el jugador especificado. Model.ModelStreamingMode debe establecerse en PersistentPerPlayer para que el comportamiento se cambie como resultado de la adición.

  • Restaura una descripción de un volumen que contiene todas las partes de un Modelo.

  • Restablece el tamaño de la caja de contorno más pequeña que contiene todos los BaseParts en el Model, alineado con el Model.PrimaryPart si se establecer.

  • Devuelve todos los objetos Player que son persistentes para este objeto de modelo. El comportamiento varía según sea que se llame a este método desde un Script o un LocalScript .

  • Devuelve la escala de canon del aplicación de modelado, que se establece por defecto en 1 para los modelos recién creados y cambiará a medida que se escala a través de Model/ScaleTo .

  • MoveTo(position : Vector3):void

    Mueve el PrimaryPart a la posición especificada. Si no se ha especificado una parte primaria, se utilizará la parte raíz del modelo.

  • RemovePersistentPlayer(playerInstance : Player):void

    Este modelo ya no es persistente para el jugador especificado. Model.ModelStreamingMode debe establecerse en PersistentPerPlayer para que el comportamiento cambie como resultado de la eliminación.

  • ScaleTo(newScaleFactor : number):void

    Establece el factor de escala del aplicación de modelado, ajustando el tamaño y la ubicación de todas las instancias descendientes para que tengan ese factor de escala en relación con sus tamaños y ubicaciones iniciales cuando el factor de escala era 1.

  • TranslateBy(delta : Vector3):void

    Sin objetodisponible.

Métodos heredados de PVInstance

Eventos

Propiedades

AirDensity

Leer paralelo

El nivel del suelo ( Y de 0) de la densidad del aire en las unidades RMU/stud³ (ver Unidades de Roblox ) , se usa para cal

AllowThirdPartySales

No replicado
Leer paralelo

Esta propiedad Workspace determina si se pueden vender los activos creados por otros usos en el juego.

¿Qué son las ventas de terceros?

Cuando este valor es falso, como por defecto, solo se pueden vender los activos creados por el creador del lugar (ya sea un jugador o un grupo) y Roblox.

En la mayoría de los casos, los juegos no necesitan vender activos de terceros. Sin embargo, algunos juegos, como las reuniones de chat, requieren esta función y por lo tanto, existe como una opción de opt-in.

¿Qué productos de terceros puedo vender?

Nota, Productos del desarrollador solo se pueden vender en el juego en el que están asociados, independientemente de lo que se establece en Permitir ventas de terceros y ropa. Esta propiedad afecta a 1>Game Passes1> y 4>服装4>.

AvatarUnificationMode

No programable
Leer paralelo

CSGAsyncDynamicCollision

No programable
Leer paralelo

ClientAnimatorThrottling

Leer paralelo

Especifica el Enum.ClientAnimatorThrottlingMode para usar para el cliente local.

Cuando esté habilitado, las animaciones en las instancias remotamente simuladas de Model comenzarán a acelerarse. El acelerador calcula la intensidad de aceleración usando:

  • Visibilidad de un Model en relación con el Camera
  • FPS en el juego
  • Número de animaciones activas

CurrentCamera

No replicado
Leer paralelo

El objeto Camera que está siendo usado por el jugador local.

Cómo usar la cámara actual

Al buscar un objeto de cliente de Camera, usa esta propiedad en lugar de buscar un hijo de Workspace llamado "Camera".

Cuando estableces esta propiedad, todos los demás objetos Camera en el Workspace se destruyen, incluido el anterior CurrentCamera. Si estableces esta propiedad a cero o a una cámara que no es un descendiente del espacio de trabajo (o la cámara anterior), se creará y se asignará un nuevo 2>

Para obtener más información, see Programar la cámara .

DistributedGameTime

No replicado
Leer paralelo

La cantidad de tiempo, en segundos, que el juego ha estado ejecutando.

A pesar del título, este valor no está actualmente 'Distribuido' en el cliente y el servidor. En cambio, en el servidor representa cuánto tiempo ha estado ejecutando el servidor. En el cliente, representa cuánto tiempo ha estado conectado al servidor.

Los desarrolladores no deben confiar en el comportamiento anterior, y es posible que esta propiedad se sincronice a través de los clientes y el servidor en el futuro.

Aquellos que buscan el tiempo desde que el programa comenzó a funcionar deben usar la función 'time' en su lugar. Vea a continuación una comparación entre DistributedGameTime y sus alternativas.


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

FallenPartsDestroyHeight

Leer paralelo
Seguridad del plugin

Esta propiedad determina la altura a la que el motor de Roblox elimina automáticamente los BaseParts y sus ancestros Models de Workspace por medio de la herencia de sus padres a 1> nil1> . Esto para evitar que las partes que han caído del mapa continúen cayendo para siempre.

Si una parte se elimina debido a este comportamiento, esa parte es la última en un Model , ese modelo también se eliminará. Esto se aplica a todos los ancestros de modelos de la parte.

Esta propiedad está sujeta entre -50,000 y 50,000 porque BaseParts no simula o renders correctamente a una gran distancia de la base debido a in Precisiones flotantes.

Esta propiedad se puede leer por scripts, pero solo se puede configurar por plugins, la barra de comandos o la ventana de propiedades en Studio.

FluidForces

No programable
Leer paralelo

Con esta propiedad habilitada, el motor de físicas calcula las fuerzas aerodinámicas en BaseParts cuya propiedad EnableFluidForces es verdadera. El por defecto, Default, desactiva las fuerzas aerodinámicas. Nota que esta propiedad no se puede configurar a través

GlobalWind

Leer paralelo

Esta propiedad especifica la dirección y la fuerza que sopla el viento a través de la experiencia, afectando la hierba del terreno, las nubes dinámicas y las partículas. Vea el artículo Viento global para obtener más información.

Gravity

Leer paralelo

Determina la aceleración debido a la gravedad aplicada a la caída de BaseParts . Este valor se mide en studs por segundo cuadrado y por defecto se establece en 196.2 studs / segundo 2 . Al cambiar este valor, los desarrolladores pueden simular los efectos de la gravedad baja o alta en el juego.

Muestras de código

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

No programable
Leer paralelo

Habilita el soporte para las limitaciones de IKControls. El valor Default es el mismo que Enabled. Si se desactivó, IKControls ignoran las limitaciones físicas. Consulte IKControl para obtener más información.

InsertPoint

No replicado
Leer paralelo

MeshPartHeadsAndAccessories

No programable
Leer paralelo

Establece si los personajes Head y Accessories deben descargarse como MeshParts . El valor Default es el mismo que Enabled . Si esta función está habilitada, los avatares incrustados usarán 1> Class.MeshPart|MeshParts1> para la cabeza y los accesorios del personaje.

ModelStreamingBehavior

No programable
Leer paralelo

MoverConstraintRootBehavior

No programable
Leer paralelo

Controla la lógica utilizada para seleccionar la parte de raíz de la montura para los mecanismos que usan cualquiera de las siguientes limitaciones:

Cuando esta propiedad esté configurada como Enum.MoverConstraintRootBehaviorMode.Enabled, estos requisitos se ignorarán al seleccionar la parte de raíz de la instalación si el requisito no transmite fuerzas entre dos

Cuando esta propiedad esté configurada como Enum.MoverConstraintRootBehaviorMode.Disabled, estos controles pueden considerarse incorrectamente al seleccionar la parte de la raíz de la instalación, lo que conduce a retrasos y propiedad incorrectas cuando se agregan estos controles a un mecanismo.

PathfindingUseImprovedSearch

No programable
No explorable
Leer paralelo

PhysicsSteppingMethod

No programable
Leer paralelo

Establece cómo el solvente avanzará la simulación de física en el tiempo. Esta opción no es escapable y debe establecerse desde la propiedad PhysicsStepping Method de Workspace dentro de Studio. Vea Adaptive Timestepping para obtener más información.


<tbody>
<tr>
<td><b>Adaptativo</b></td>
<td>El motor intenta asignar tasas de simulación óptimas para individuales montajes de 240 Hz, 120 Hz o 60 Hz. Esta configuración se optimiza para el ejecución.</td>
</tr>
<tr>
<td><b>Fijo</b></td>
<td>Todas las simuladas montajes dentro del espacio de trabajo avanzarán en 240 Hz. Esta opción es mejor para la estabilidad y simulación precisión.</td>
</tr>
<tr>
<td><b>Por defecto</b></td>
<td>El valor predeterminado actual es <b>Fixed</b> .</td>
</tr>
</tbody>
OpciónDescripción

Tenga en cuenta que cuando las simulaciones de diferentes tasas de simulación se conectan a través de Constraints o colisiones, el mecanismo combinado se predeterminará para la tasa de simulación más alta para la estabilidad.

PlayerCharacterDestroyBehavior

No programable
Leer paralelo

PrimalPhysicsSolver

No programable
Leer paralelo

RejectCharacterDeletions

No programable
Leer paralelo

RenderingCacheOptimizations

No programable
Leer paralelo

ReplicateInstanceDestroySetting

No programable
Leer paralelo
Leer paralelo

SandboxedInstanceMode

No programable
Leer paralelo

SignalBehavior

No programable
Leer paralelo

Esta propiedad determina si los gestores de eventos se reanudarán inmediatamente cuando se activa el evento, o se reanudarán y luego se reanudarán en un punto de reanudación más tarde. Los puntos de reanudación actualmente incluyen:

Para obtener más información, see Eventos diferidos .

StreamOutBehavior

No programable
Leer paralelo

Los controles de StreamOutBehavior donde el contenido se descargará del ReplicationFocus según las condiciones de memoria del dispositivo o basado en el radio de transmisión.

Véase también:

StreamingEnabled

Leer paralelo
Seguridad del plugin

La propiedad StreamingEnabled determina si se habilita el streaming de contenido del juego para el lugar. Esta propiedad no es escribible y, por lo tanto, debe establecerse en el objeto Espacio de trabajo en Studio.

Véase también:

StreamingIntegrityMode

No programable
Leer paralelo

Si se habilita la transmisión de instancia streaming, una experiencia puede comportarse de manera no intencional si el personaje de un jugador se mueve a una región del mundo que no ha sido transmitida a su cliente. La función de integridad de la transmisión ofrece una manera de evitar esas situaciones potencialmente problemáticas.

StreamingMinRadius

No programable
Leer paralelo

La propiedad StreamingMinRadius indica el radio alrededor del personaje del jugador o el contenido actual ReplicationFocus en el que se transmitirá en la prioridad más alta. Por defecto, 64 studs.

Se debe tener cuidado al aumentar el radio mínimo predeterminado desde hacerlo requerirá más memoria y más ancho de banda del servidor a expensas de otros componentes.

Véase también:

StreamingTargetRadius

No programable
Leer paralelo

La propiedad StreamingTargetRadius controla la distancia máxima desde el personaje del jugador o el contenido actual ReplicationFocus en el que se transmitirá. Por defecto, 1024 studs.

Nota que el motor está permitido para almacenar el contenido previamente cargado más allá del radio de destino, permisos de memoria.

Véase también:

Terrain

Solo lectura
No replicado
Leer paralelo

Esta propiedad es una referencia al objeto de propiedad Terrain que está asociado al objeto de propiedad Workspace.

Terrain object within the Workspace hierarchy

Vea Terreno Ambiental para obtener más información.

TouchEventsUseCollisionGroups

No programable
Leer paralelo

TouchesUseCollisionGroups

No programable
Leer paralelo

Esta propiedad determina si parts en diferentes grupos establecidos para no colisionar ignorarán las colisiones y los eventos de toque. Por defecto, el valor de esta propiedad está establecido en false .

Cuando esta propiedad está habilitada, las partes en diferentes grupos establecidas para no colisionar también ignorarán la propiedad CanTouch, similar a cómo se ignora la propiedad BasePart.CanCollide para más información sobre el comportamiento de CanTouch. Por favor, visite su página de propiedades para obtener más información.

Métodos

GetNumAwakeParts

Escribir paralelo

Devuelve el número de BaseParts que se consideran físicamente activos, debido a estar recientemente bajo la influencia de la física.

Esta función proporciona una medida de cuántos BaseParts están siendo afectados, o recientemente bajo la influencia de, fuerzas físicas.


print(workspace:GetNumAwakeParts()) -- prints the number of 'awake' parts

Partes dormidas vs despiertas

Para garantizar un buen ejecución, Roblox establece Base


Devuelve

El número de partes despiertas.

GetPhysicsThrottling

Escribir paralelo

Devuelve un número entero, entre 0 y 100, que representa el porcentaje de simulación de tiempo real que física está reduciendo actualmente.

Esta función se puede usar para determinar si, y en qué medida, se está produciendo el aceleramiento físico.

¿Qué es el acelerador de física?

La aceleración de físicos ocurre cuando el motor de físicos detecta que no puede mantenerse al día con el juego en tiempo real. Cuando la aceleración de físicos está siendo acelerada, se actualizará con menos frecuencia, lo que hará que BaseParts aparezca para moverse más lentamente.

Sin acelerar, la simulación de física caería más tarde del ritmo con el juego. Esto puede llevar a bajas tasas de fotogramas y otro comportamiento no deseado.

Los objetos asociados con Humanoids están exentos del ajuste de velocidad física.

También véase Workspace:SetPhysicsThrottleEnabled() .

Demonstrando física de ajuste

Los desarrolladores siempre deben evitar crear lugares que sobrecarguen el motor de física, ya que esto conduce a una experiencia sub-par para los jugadores. Los que desean simular el estrangulamiento de la física para propósitos de investigación, sin embargo, solo deben crear muchos de Parts muy rápidamente.


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

Devuelve

El porcentaje de simulación de tiempo real que la física está siendo ahora acelerada.

GetRealPhysicsFPS

Escribir paralelo

Devuelve el número de marcos por segundo que la física está simulando actualmente.

Usando GetRealPhysicsFPS para combatir a los explotadores

Un uso común de esta función es detectar si los explotadores están aumentando su tasa de fotogramas por segundo locales para moverse más rápido. Esto generalmente se hace comparando el resultado devuelto por el GetRealPhysicsFPS de un cliente con un máximo que no se violará en las condiciones norm


Devuelve

Devuelve el número de marcos por segundo que la física está simulando actualmente.

Muestras de código

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

Escribir paralelo

GetServerTimeNow 返回服务器上的时间以微秒精度。时间调整漂移和平滑(它是不会减少的)。服务器时钟进度不超过 1.006×速度和 0.994×速度。

Regresa un tiempo de inicio de sesión de Unix que se puede usar con os.date() o con DateTime.fromUnixTimestamp() .

Esta función es útil para crear experiencias sincronizadas, ya que tiene tres propiedades necesarias para hacerlo: es un reloj de tiempo del mundo real, es monotónico y tiene una precisión decente.

Esta función se basa en el servidor, por lo que llamarlo desde un cliente que no está conectado lanzará un error.

Véase también:


Devuelve

El tiempo de época estimado en el servidor.

JoinToOutsiders

void

Esta función crea juntas entre el Parts y cualquier parte que toque la superficie de la parte especificada y el modo de creación de la parte especificada.

Esta función crea juntas entre las Partes especificadas y cualquier superficie de toque plana, dependiendo de las superficies de las partes y el modo de creación de juntas especificado.

  • La pegadura, los pernos, las entradas, las superficies universales, la soldadura y la lisibilidad crearán todas las instancias de soldadura.
  • Las esferas no se unirán a nada. Las paredes de los cilindros redondeadas no se unirán, pero las paredes de los cilindros planas sí lo harán.
  • Las superficies de articulación y motor todavía crearán Rotate y RotateP instancias conjuntas, independientemente de la forma de la parte.

El primer parámetro es un array de BaseParts . Las juntas solo se crearán entre las partes en el array y no en el matriz/lista. Las juntas no se crearán entre las partes en el matriz/lista.

El segundo parámetro es un Enum.JointCreationMode que determina cómo se crearán las joints. Al pasar en cualquier valor del enum, Enum.JointCreationMode.All o Enum.JointCreationMode.Surface, tiene el mismo comportamiento que al unirse siempre

Esta función se usa por el tool Roblox Studio Move cuando el usuario termina de mover una selección. En conjunto con Plugin:GetJoinMode() y Workspace:UnjoinFromOutsiders() se puede usar para conservar la funcionalidad de unión al desarrollar herramientas de construcción de estudios personalizadas. Vea los snippets a continuación para un ejemplo.


-- acabado de mover una selección, hacer joints
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
workspace:JoinToOutsiders(parts, joinMode)
end

-- empezó a mover una selección, romper juntas
local function startMovingParts(parts)
workspace:UnjoinFromOutsiders(parts)
end

Parámetros

objects: Instances

Un array de BaseParts para quienes se unen.

El Enum.JointCreationMode para usar. Al pasar en Enum.JointCreationMode.All o Enum.JointCreationMode.Surface tiene el mismo comportamiento que se traduce al Unirse Siempre.


Devuelve

void

PGSIsEnabled

Devuelve true si el juego tiene el solucionador de física PGS habilitado.

Como Workspace.PGSPhysicsSolverEnabled no se puede acceder a los scripts, la función PGSIsEnabled permite a los desarrolladores decir qué solucionador de física está usando el juego.


print(workspace:PGSIsEnabled()) -- true = PGS solver enabled
print(workspace:PGSIsEnabled()) -- false = Legacy solver enabled

Devuelve

Es cierto si el solucionador PGS está habilitado.

UnjoinFromOutsiders

void

Rompe todas las juntas entre el especificado BaseParts y otros BaseParts .

Esta función requiere un matrión de BaseParts . Nota, las juntas no se romperán entre estos BaseParts (cada uno de ellos), solo entre estos BaseParts y otros 1> Class.BasePart|BaseParts1> no en el matriz/lista.

Esta función se usa por el tool Roblox Studio Move cuando el usuario comienza a mover una selección. En conjunto con Plugin:GetJoinMode() y Workspace:JoinToOutsiders() se puede usar para conservar la funcionalidad de unión al desarrollar herramientas de construcción de estudios personalizadas. Vea los snippets a continuación para un ejemplo.


-- 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

Parámetros

objects: Instances

Un array de BaseParts para quienes se rompen las juntas.


Devuelve

void

ZoomToExtents

void
Seguridad del plugin

Posiciona y engrandece el Workspace.CurrentCamera para mostrar el alcance de BaseParts actualmente en el Workspace .

Esta función se utilizó en el, ahora eliminado, botón 'Zoom To Extents' en Roblox Studio. Muestra un comportamiento similar al de la función 'Zoom To' (F atajo), sin embargo, muestra los extensos del Workspace en lugar del objeto actualmente seleccionado.

Esta función no se puede usar en scripts, pero funcionará en la barra de comandos o en los plugins.


Devuelve

void

Eventos

PersistentLoaded

Este evento se activa cada vez que se envía a un jugador todos los modelos persistentes actuales y modelos atómicos sin parte. El parámetro player indica que jugador ha recibido todos los casos aplicables.

Nota que la carga de experiencia ocurre antes de la carga persistente, y el disparo del evento DataModel.Loaded no indica que todos los modelos persistentes estén presentes.

Parámetros

player: Player