Object

Pokaż przestarzałe

*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.

Brak możliwości tworzenia
Bez replikacji

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

Właściwości

  • Tylko do odczytu
    Bez replikacji
    Odczyt równoległy

    Strumień czytania-tylko reprezentujący klasę to Object .

Metody

Zdarzenia

Właściwości

ClassName

Tylko do odczytu
Bez replikacji
Odczyt równoległy

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

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

property: string

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

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

Zapis równoległy

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

className: string

Klasa, przeciwko której będzie sprawdzana klasa Obiektu. Czujny.


Zwroty

Opisuje, czy klasa Obiektu pasuje lub jest podklasą danej klasy.

Przykłady kodu

Instance:IsA()

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

property: string

Nazwa właściwości, która się zmieniła.


Przykłady kodu

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