Object

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Non répliqué

L'objet est la classe de base pour toutes les classes dans la hiérarchie des classes Roblox. Toutes les autres classes que le moteur Roblox définit héritent de tous les membres de l'objet. Il n'est pas possible de créer directement l'objet.

Résumé

Propriétés

  • Lecture uniquement
    Non répliqué
    Lecture parallèle

    Une chaîne de lecture unique représentant la classe que vous Object appartient à.

Méthodes

Évènements

Propriétés

ClassName

Lecture uniquement
Non répliqué
Lecture parallèle

Une chaîne de lecture unique représentant la classe que vous Object appartient à.

Cette propriété peut être utilisée avec diverses autres fonctions qui sont utilisées pour identifier les objets par taper, telles que Object:IsA() ou Instance:FindFirstChildOfClass().

Remarquez que cette propriété est lue seulement et ne peut pas être modifiée par des scripts. Les développeurs souhaitant changer la classe d'un objet auront à la place un nouveau Object .

Contrairement à Object:IsA(), ClassName peut être utilisé pour vérifier si un objet appartient à une classe spécifique en ignorant l'héritage de classe. Par exemple :


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

GetPropertyChangedSignal

Cette méthode renvoie un événement qui se comporte exactement comme l'événement Changed, sauf qu'il ne s'exécute que lorsque la propriété donnée change. Il est généralement une bonne idée d'utiliser cette méthode au lieu d'une connexion à Changed avec une fonction qui vérifie le nom de la propriété. Les appels suivants à cette méthode sur

Class.ValueBase objets, tels que IntValue et StringValue, utilisent un événement modifié 0> Class.Object.Changed|Changed0> qui se déclenche avec le contenu de leur propriété ValueBase3>. Ainsi, cette méthode fournit un moyen de détecter les modifications dans d'autres propriétés de ces objets.

Remarquez que cet événement ne transmettra aucun argument à une fonction connectée, donc la valeur de la propriété modifiée doit être lue directement dans un script.

Limites

L'événement renvoyé par cette méthode ne ne pas tirer</

De plus, l'événement renvoyé ne peut pas se déclencher sur chaque modification de propriétés qui change très souvent, et/ou il peut ne pas se déclencher du tout. Il est recommandé de tester soigneusement les modifications de propriétés qui affectent la logique du jeu.

Paramètres

property: string

La propriété à laquelle se connecter.


Retours

Un signal qui se déclenche chaque fois que la propriété change.

Échantillons de code

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

Écrire en parallèle

IsA renvoie vrai si la classe de l'objet est équivalente à ou un sous-classe de classe donnée. Cette fonction est similaire aux opérateurs **** d'autres langues, et est une forme d'1>inspection du type

Le plus courant, cette fonction est utilisé pour tester si un objet est une sorte de partie, comme Part ou WedgePart, qui hérite de Class


local function paintFigure(character, color)
-- Itérer sur les objets enfants du personnage
for _, child in character:GetChildren() do
-- Filtrer les objets non part, tels que les chemises, les pantalons et les humanoïdes
-- R15 utilise MeshPart et R6 utilise Part, donc nous utilisons BasePart ici pour détecter les deux :
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))

Puisque toutes les classes héritent de Object, l'appel de object:IsA("Object") retournera toujours vrai.

Paramètres

className: string

La classe contre laquelle la classe de l'objet sera vérifiée. Sensible aux majuscules.


Retours

Décrire si la classe de l'objet correspond ou est une sous-classe de la classe donnée.

Échantillons de code

Instance:IsA()

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

Évènements

Changed

Cet événement se déclenche immédiatement après que une propriété d'objet soit modifiée et fonctionne avec la plupart des cas d'utilisation (voir limites ci-dessous). La nouvelle valeur d'une propriété modifiée n'est pas passée en tant que paramètre, donc il doit être accédé en utilisant object[propriété]. Par exemple :


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

Si vous n'êtes intéressé que par l'écoute d'un seul élément de propriété spécifique, envisagez d'utiliser la méthode GetPropertyChangedSignal() à la place.

Pour les objets ValueBase tels que IntValue et StringValue, cet événement ne se déclenche que lorsque la propriété 1> Value1> de l'objet change. Pour détecter d'autres modifications dans 4> Class.ValueBase4> objets, utilisez

Limites

Cet événement ne ne pas CFrame pour les modifications liées à la physique, tell

De plus, cet événement peut ne pas se déclencher pour chaque modification de propriétés qui change très souvent, et/ou il peut ne pas se déclencher pour ces propriétés du tout. Il est recommandé de tester soigneusement pour les modifications de propriétés qui affectent la logique du jeu.

Paramètres

property: string

Le nom de la propriété qui a changé.


Échantillons de code

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