Object
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Objekt ist die Basisklasse für alle Klassen in der Roblox-Klassen-Hierarchie. Jede andere Klasse, die die Roblox-Engine definiert, erbt alle Mitglieder von Objekt. Es ist nicht möglich, Objekt direkt zu erstellen.
Zusammenfassung
Methoden
Erhalte ein Ereignis, das ausgelöst wird, wenn eine bestimmte Eigenschaft des Objekts sich ändert.
Gibt zurück, ob die Klasse eines Objekts einer bestimmten Klasse entspricht oder erbt.
Ereignisse
Feuert sofort nach dem Ändern einer Eigenschaft des Objekts, mit einigen Einschränkungen.
Eigenschaften
ClassName
Eine read-only-String, die die Klasse dies Object repräsentiert.
Diese Eigenschaft kann mit verschiedenen anderen Funktionen verwendet werden, die verwendet werden, um Objekten nach eingebenzu identifizieren, z. B. Object:IsA() oder Instance:FindFirstChildOfClass().
Beachten Sie, dass diese Eigenschaft nur gelesen wird und von Skripten nicht geändert werden kann. Entwickler, die eine Objektklasse ändern möchten, müssen stattdessen einen neuen Object erstellen.
Anders als Object:IsA() kann ClassName verwendet werden, um zu überprüfen, ob ein Objekt zu einer bestimmten Klasse gehört, die die Klassen-Erbanneigung ignoriert. Zum Beispiel:
for _, child in workspace:GetChildren() doif child.ClassName == "Part" thenprint("Found a Part")-- will find Parts in model, but NOT TrussParts, WedgeParts, etcendend
Methoden
GetPropertyChangedSignal
Diese Methode gibt ein Ereignis zurück, das genau wie das Changed Ereignis funktioniert, mit der Ausnahme, dass es nur ausgeführt wird, wenn die angegebene Eigenschaft geändert wird. Es ist in der Regel eine gute Idee, dieses Methode anstelle einer Verbindung mit Changed mit einer Funktion zu verwenden, die den Eigenschaftsnamen über
Class.ValueBase Objekte, wie IntValue und StringValue, verwenden ein modifiziertes 0> Class.Object.Changed|Changed0> -Ereignis, das mit dem Inhalt ihrer ValueBase3> -Eigenschaft feuert. Als solches bietet dieser Methode einen Weg, Änderungen in anderen Eigenschaften dieser Objek
Beachten Sie, dass dieses Ereignis keine Argumente an eine verbundene Funktion weitergibt, so dass der Wert der geänderten Eigenschaft direkt in einem Skript, das. PL: die Skriptsgelesen werden muss.
Beschränkungen
Die von dieser Methode zurückgegebene Ereignis nicht physikalisch verwandte Änder
Darüber hinaus kann das zurückgegebene Ereignis nicht jedes Mal auf jede Änderung von Eigenschaften, die sehr häufig vorgenommen wird, und/oder es nicht für solche Eigenschaften Alleauslösen. Es wird empfohlen, dass Sie auf Eigenschaftsänderungen testen, die die Spiellogik beeinflussen.
Parameter
Die Eigenschaft, zu der sich die Verbindung anschließt.
Rückgaben
Ein Signal, das jedes Mal ausgelöst wird, wenn die Eigenschaften ändern.
Code-Beispiele
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 gibt zurück, wenn die Klasse des Objekts ivalent zu oder ein Unterklasse von einer bestimmten Klasse ist. Diese Funktion ist ähnlich den Class.Instance -Operatoren in anderen Sprachen und ist eine Form der 1>
Am häufigsten wird diese Funktion verwendet, um zu testen, ob ein Objekt eine Art Teil ist, wie z. B. Part oder WedgePart, das von
local function paintFigure(character, color)
-- Über die Kindere Objekte des Charakters wiederholen
for _, child in character:GetChildren() do
-- Filtern Sie nicht-part Objekte, wie Shirt, Pants und Humanoid
-- R15 verwendet MeshPart und R6 verwendet Part, so verwenden wir hier BasePart, um beide zu erkennen:
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))
Da alle Klassen von Object erben, wird die Aufrufe von object:IsA("Object") immer wahr sein.
Parameter
Die Klasse, gegen die die Klasse des Objekts überprüft wird. Case-sensitiv.
Rückgaben
Beschreibt, ob die Klasse des Objekts übereinstimmt oder eine Unterklasse der angegebenen Klasse ist.
Code-Beispiele
local Workspace = game:GetService("Workspace")
print(Workspace:IsA("Workspace")) -- true
print(Workspace:IsA("BasePart")) -- false
print(Workspace:IsA("Instance")) -- true
Ereignisse
Changed
Dieses Ereignis wird sofort nachdem ein Objekt-Eigenschaft geändert wird ausgelöst und funktioniert mit den meisten Anwendungsfällen (siehe Einschränkungen unten). Der neue Wert einer geänderten Eigenschaft wird nicht als Parameter zurückgegeben, so dass er mit der Verwendung von object[property] aufgerufen werden muss. Zum Beispiel:
object.Changed:Connect(function(property)
print("The new property's value is", object[property])
end)
Wenn Sie nur daran interessiert sind, die Änderung einer bestimmten Eigenschaftenzu hören, betrachten Sie es anstelle dessen GetPropertyChangedSignal() Methode.
Für ValueBase Objekte wie IntValue und StringValue , wird dieses Ereignis nur ausgelöst, wenn die Eigenschaft 1> Value1> des Objekts geändert wird. Um andere Änderungen in 4> Class.ValueBase4> Objekten zu erkennen
Beschränkungen
Dieses Ereignis <a href="https://www.fujifilm.com/de-de/de/fujifilm-
Darüber hinaus kann dieses Ereignis nicht jedes Mal ausgeführt werden, wenn sich Eigenschaften sehr häufig ändern, und/oder es nicht für solche Eigenschaften ausgeführt werden kann. Es wird empfohlen, dass Sie auf Eigenschaftsänderungen testen, die die Spiellogik betreffen.
Parameter
Der Name der Eigenschaft, die sich geändert hat.
Code-Beispiele
-- 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