Object
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
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
Une chaîne de lecture unique représentant la classe que vous Object appartient à.
Méthodes
Obtenez un événement qui se déclenche lorsqu'une propriété donnée de l'objet change.
Retourne vrai si la classe d'un objet correspond ou hérite d'une classe donnée.
Évènements
Tiré immédiatement après le changement de propriété d'un objet, avec quelques limites.
Propriétés
ClassName
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() doif child.ClassName == "Part" thenprint("Found a Part")-- will find Parts in model, but NOT TrussParts, WedgeParts, etcendend
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
La propriété à laquelle se connecter.
Retours
Un signal qui se déclenche chaque fois que la propriété change.
Échantillons de code
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")
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
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
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
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
Le nom de la propriété qui a changé.
Échantillons de code
-- 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"
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