Object

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Nicht repliziert

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

Eigenschaften

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Eine read-only-String, die die Klasse dies Object repräsentiert.

Methoden

  • Erhalte ein Ereignis, das ausgelöst wird, wenn eine bestimmte Eigenschaft des Objekts sich ändert.

  • IsA(className : string):bool
    Parallel schreiben

    Gibt zurück, ob die Klasse eines Objekts einer bestimmten Klasse entspricht oder erbt.

Ereignisse

Eigenschaften

ClassName

Schreibgeschützt
Nicht repliziert
Parallel lesen

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() do
if child.ClassName == "Part" then
print("Found a Part")
-- will find Parts in model, but NOT TrussParts, WedgeParts, etc
end
end

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

property: string

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

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

Parallel schreiben

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

className: string

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

Instance:IsA()

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

property: string

Der Name der Eigenschaft, die sich geändert hat.


Code-Beispiele

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