Object
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Obiekt jest podstawową klasą dla wszystkich klas w hierarchii klas Roblox. Każda inna klasa, która zdefiniowana przez silnik Roblox, odziedzicza wszystkich członków Obiektu. Nie jest możliwe utworzenie bezpośrednio Obiektu.
Podsumowanie
Metody
Zdobądź wydarzenie, które uruchomuje się, gdy dana własność obiektu się zmienia.
Wróщает prawdę, jeśli klasa obiektu pasuje lub dziedzicza się z podanej klasy.
Zdarzenia
Wystrzelony natychmiastowo po zmianie własności obiektu, z pewnymi ograniczeniami.
Właściwości
ClassName
Strumień czytania-tylko reprezentujący klasę to Object .
Ten parametr może być używany z różnymi innymi funkcjami, które są używane do identyfikacji obiektów według wpisywać, takimi jak Object:IsA() lub Instance:FindFirstChildOfClass().
Uwaga: ta właściwość jest czytelna tylko i nie może być zmieniana przez skrypty. Rozwój programistów chcących zmienić klasę obiektu będzie zamiast tego musiał utworzyć nowy Object .
W przeciwieństwie do Object:IsA() , ClassName może być używany do sprawdzenia, czy obiekt należy do określonej klasy ignorującej dziedzictwo klasy. Na przykład:
for _, child in workspace:GetChildren() doif child.ClassName == "Part" thenprint("Found a Part")-- will find Parts in model, but NOT TrussParts, WedgeParts, etcendend
Metody
GetPropertyChangedSignal
Ten metod returnuje wydarzenie, które zachowuje się dokładnie jak wydarzenie Changed, z wyjątkiem tego, że działa tylko, gdy dana właściwość zmienia się. Jest to ogólnie dobry pomysł użyć tego metodu zamiast połączenia z Changed z funkcją sprawdzającą nazwę właściwości. Kolejne
Class.ValueBase obiekty, takie jak IntValue i StringValue, używają zmodyfikowanego wydarzenia 0> Class.Object.Changed|Changed0>, które działa z treścią ich właściwości ValueBase3>. W ten sposób ten metod wykrywa zmiany w innych właściwości tych obie
Uwaga, że ten wątek nie przekaże żadnych argumentów związanych funkcji, więc wartość zmienionej właściwości musi być czytana bezpośrednio w skrypcie.
Ograniczenia
Wyzwany przez ten metodę event nie Class.BasePart.CFrame|CFrame ,
Dodatkowo, zwracany przez to wydarzenie ewent może nie zostać wykonany na każdą zmianę właściwości, która zmienia się bardzo często, i/lub nie zostanie wykonany dla takich właściwości w wszystko. Rekomendujemy, aby dokładnie testować zmiany właściwości, które wpływają na zachowanie gry.
Parametry
Właściwość do połączenia.
Zwroty
sygnał, który wysyłany jest za każdym razem, gdy właściwość zmienia się.
Przykłady kodu
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 zwraca prawdę, jeśli klasa obiektu jest równoznaczna z lub podklasą danej klasy. Ta funkcja jest podobna do operatorów instancji w innych językach i
Najczęściej funkcja ta jest używana do testowania, czy obiekt jest jakimś rodzajem części, takim jak Part lub Class.WedgePart</
local function paintFigure(character, color)
-- Ziteruj nad dziecięzymi obiektami postaci
for _, child in character:GetChildren() do
-- Filtruj nienazwane obiekty, takie jak koszula, spodnie i człowiek
-- R15 używa MeshPart i R6 używa Part, więc używamy tutaj BasePart, aby wykryć obie:
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))
Ponieważ wszystkie klasy dziedziczą się od Object, wyszwanie object:IsA("Object") zawsze zwróci prawdziwy wynik.
Parametry
Klasa, przeciwko której będzie sprawdzana klasa Obiektu. Czujny.
Zwroty
Opisuje, czy klasa Obiektu pasuje lub jest podklasą danej klasy.
Przykłady kodu
local Workspace = game:GetService("Workspace")
print(Workspace:IsA("Workspace")) -- true
print(Workspace:IsA("BasePart")) -- false
print(Workspace:IsA("Instance")) -- true
Zdarzenia
Changed
Ten wąż pojawia się natychmiastowo po zmianie właściwości obiektu i działa z większością przypadków użycia (patrz ograniczenia poniżej). Nowa wartość zmienionej właściwości jest nie przekazywana jako parametr, więc musi być dostępna poprzez użycie object[property]. Na przykład:
object.Changed:Connect(function(property)
print("The new property's value is", object[property])
end)
Jeśli jesteś tylko zainteresowany słuchaniem zmiany jednej określonej własności, rozważ GetPropertyChangedSignal() metodę zamiast tego.
Dla obiektów ValueBase takich jak IntValue i StringValue, ten wydarzenie tylko się włącza, gdy właściwość 1> Value1> obiektu zmienia się. Aby wykryć inne zmiany w obiektach 4> Class.
Ograniczenia
Ten wątek nie nie strzela za zmiany związane z fizyką, takie jak kied
Dodatkowo, ten wątek nie może zostać uruchomiony na każdą zmianę właściwości, która zmienia się bardzo często, i/lub nie może zostać uruchomiony dla takich właściwości w wszystko. Rekomendujemy, aby uważnie testować zmiany właściwości, które wpływają na zachowanie gry.
Parametry
Nazwa właściwości, która się zmieniła.
Przykłady kodu
-- 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