Object

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

El objeto es la clase base para todas las clases en la hierarcha de clases de Roblox. Cada otra clase que el motor de Roblox define hereda todos los miembros del objeto. No es posible crear directamente el objeto.

Resumen

Propiedades

  • Solo lectura
    No replicado
    Leer paralelo

    Una cadena de lectura que representa la clase que pertenece a esto Object

Métodos

Eventos

  • Se activa inmediatamente después de que cambie la propiedad del objeto, con algunas limitaciones.

Propiedades

ClassName

Solo lectura
No replicado
Leer paralelo

Una cadena de lectura que representa la clase que pertenece a esto Object

Esta propiedad se puede usar con varias otras funciones que se utilizan para identificar objetos por introducir, como Object:IsA() o Instance:FindFirstChildOfClass() .

Tenga en cuenta que esta propiedad se lee solo y no se puede alterar por scripts. Los desarrolladores que deseen cambiar la clase de un objeto tendrán en cambio que crear un nuevo Object .

A diferencia de Object:IsA() , ClassName se puede usar para verificar si un objeto pertenece a una clase específica ignorando la herencia de clase. Por ejemplo:


for _, child in workspace:GetChildren() do
if child.ClassName == "Part" then
print("Found a Part")
-- will find Parts in model, but NOT TrussParts, WedgeParts, etc
end
end

Métodos

GetPropertyChangedSignal

Este método返回一个事件 que comporta exactamente como el evento Changed , excepto que sólo se activa cuando se cambia la propiedad dada. Generalmente es una buena idea usar este método en lugar de una conexión a Changed con una función que comprueba el nombre de la propiedad. Las siguientes llamadas a este método en el mismo objeto con la misma propiedad nombre devuelve el

Class.ValueBase objetos, como IntValue y StringValue, usa un evento modificado 0> Class.Object.Changed|Changed0> que se activa con el contenido de su propiedad ValueBase3> . Como tal, este método proporciona una manera de detectar cambios en otras propiedades de esos objetos.

Nota que este evento no pasará ningún argumento a una función conectada, por lo que el valor de la propiedad cambiada debe leerse directamente dentro de un script.

Limitaciones

El evento devuelto por este método no dispara por cambios relacionados con la física

Además, el evento devuelto no puede dispararse en cada modificación de propiedades que cambia con mucha frecuencia, y / o no puede dispararse para tales propiedades en todos/todas. Se recomienda que pruebes cuidadosamente las propiedades que cambian que afectan la lógica del juego.

Parámetros

property: string

La propiedad a la que se conecta.


Devuelve

Una señal que se activa cuando la propiedad cambia.

Muestras de código

Old-to-New Values with Changed

local part = Instance.new("Part")
local currentColor = part.BrickColor
local function onBrickColorChanged()
local newColor = part.BrickColor
print("Color changed from", currentColor.Name, "to", newColor.Name)
currentColor = newColor
end
part:GetPropertyChangedSignal("BrickColor"):Connect(onBrickColorChanged)
part.BrickColor = BrickColor.new("Really red")
part.BrickColor = BrickColor.new("Really blue")
Changed and GetPropertyChangedSignal

local part = Instance.new("Part")
local function onBrickColorChanged()
print("My color is now " .. part.BrickColor.Name)
end
local function onChanged(property)
if property == "BrickColor" then
onBrickColorChanged()
end
end
part:GetPropertyChangedSignal("BrickColor"):Connect(onBrickColorChanged)
part.Changed:Connect(onChanged)
-- Trigger some changes (because we connected twice,
-- both of these will cause two calls to onBrickColorChanged)
part.BrickColor = BrickColor.new("Really red")
part.BrickColor = BrickColor.new("Institutional white")

IsA

Escribir paralelo

IsA返回 true if the objeto's class is equivalente a o una subclase de una clase dada. Esta función es similar a los operadores instanceof en otros idiomas, y es una forma de tipo introspección . Para ignorar la

La mayoría de las veces, esta función se usa para probar si un objeto es de algún tipo de parte, como Part o WedgePart, que hereda de


local function paintFigure(character, color)
-- Iterar sobre los objetos hijos del personaje
for _, child in character:GetChildren() do
-- Filtra objetos no parte, como camisas, pantalones y humanoides
-- R15 usa MeshPart y R6 usa Part, por lo que usamos BasePart aquí para detectar ambos:
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))

Dado que todas las clases heredan de Object, llamar object:IsA("Object") siempre devolverá true.

Parámetros

className: string

La clase a la que la clase del objeto se verificará. Sensible a mayúsculas y minúsculas.


Devuelve

Describe si la clase del objeto coincide o no con la clase dada.

Muestras de código

Instance:IsA()

local Workspace = game:GetService("Workspace")
print(Workspace:IsA("Workspace")) -- true
print(Workspace:IsA("BasePart")) -- false
print(Workspace:IsA("Instance")) -- true

Eventos

Changed

Este evento se activa inmediatamente después de que se cambie la propiedad de un objeto y funciona con la mayoría de los casos de uso (ver limitaciones a continuación). El nuevo valor de una propiedad cambiada no se ha pasado como parámetro, por lo que debe accederse a él usando object[propiedad] . Por ejemplo:


object.Changed:Connect(function(property)
print("The new property's value is", object[property])
end)

Si solo estás interesado en escuchar el cambio de una propiedad específica, considera usar el método GetPropertyChangedSignal() en su lugar.

Para ValueBase objetos como IntValue y StringValue, este evento solo se activa cuando la propiedad 1> Value1> del objeto cambia. Para detectar otras cambios en 4> Class.ValueBase4> objetos, usa 7> Class

Limitaciones

Este evento no dispara por cambios relacionados con la física, como cuando el Class.Base

Además, este evento no puede disparar en cada modificación de propiedades que cambia con mucha frecuencia, y / o no puede disparar para tales propiedades en todos/todas. Se recomienda que pruebes cuidadosamente las propiedades de cambio que afectan la lógica del juego.

Parámetros

property: string

El nombre de la propiedad que cambió.


Muestras de código

Changed Event

-- Demonstrate the Changed event by creating a Part
local part = Instance.new("Part")
part.Changed:Connect(print)
-- This fires Changed with "Transparency"
part.Transparency = 0.5
-- Similarly, this fires Changed with "Number"
part.Name = "SomePart"
-- Since changing BrickColor will also change other
-- properties at the same time, this line fires Changed
-- with "BrickColor", "Color3" and "Color3uint16".
part.BrickColor = BrickColor.Red()
-- A NumberValue holds a double-precision floating-point number
local vNumber = Instance.new("NumberValue")
vNumber.Changed:Connect(print)
-- This fires Changed with 123.456 (not "Value")
vNumber.Value = 123.456
-- This does not fire Changed
vNumber.Name = "SomeNumber"
-- A StringValue stores one string
local vString = Instance.new("StringValue")
vString.Changed:Connect(print)
-- This fires Changed with "Hello" (not "Value")
vString.Value = "Hello"
Change Detector

local object = script.Parent
local function onChanged(property)
-- Get the current value of the property
local value = object[property]
-- Print a message saying what changed
print(object:GetFullName() .. "." .. property .. " (" .. typeof(value) .. ") changed to " .. tostring(value))
end
object.Changed:Connect(onChanged)
-- Trigger a simple change in the object (add an underscore to the name)
object.Name = "_" .. object.Name