Object

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Çoğaltılmamış

Nesne, Roblox sınıf hiyerarşisindeki tüm sınıflar için temel sınıftır.Roblox Motoru tarafından tanımlanan diğer her sınıf, Nesne'nin tüm üyelerini miras alır.Doğrudan Nesne oluşturmak mümkün değildir.

Özet

Özellikler

  • Salt Okunur
    Çoğaltılmamış
    Paralel oku

    Bu Object sınıfa ait olan okunur yalnızca bir dize temsil eden bir dize.

Yöntemler

Etkinlikler

Özellikler

ClassName

Salt Okunur
Çoğaltılmamış
Paralel oku

Bu Object sınıfa ait olan okunur yalnızca bir dize temsil eden bir dize.

Bu özellik, nesneleri yaztanımlamak için kullanılan çeşitli diğer işlevlerle birlikte kullanılabilir, örneğin Object:IsA() veya Instance:FindFirstChildOfClass().

Bu özellik yalnızca okunur ve kullanıcı tarafından değiştirilemez ve kodlar tarafından değiştirilemez.Bir nesnenin sınıfını değiştirmek isteyen geliştiriciler yerine yeni bir Object oluşturmalıdır.

Farklı olarak Object:IsA() , ClassName bir nesnenin belirli bir sınıfa ait olup olmadığını kontrol etmek için kullanılabilir. Örneğin:


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

Yöntemler

GetPropertyChangedSignal

Bu yöntem, sadece verilen özellik değiştiğinde ateşlenen bir olayı döndürür; Changed olayı gibi davranan bir olay dışında.Bu yöntemi, özellik adını kontrol eden bir işlevle bağlantı yerine kullanmak genellikle iyi bir fikirdir Changed .Aynı özellik adıyla aynı nesneye yapılan sonraki bu yönteme çağrıları aynı olayı döndürür.

nesneler, örneğin ve gibi, içeriği ile ateşlenen değiştirilmiş bir etkinlik kullanır.Bu nedenle, bu yöntem bu nesnelerin diğer özelliklerindeki değişiklikleri tespit etmenin bir yolunu sağlar.

Bu etkinin bağlı bir işleve herhangi bir argüman geçirmeyeceğini unutmayın, bu nedenle değiştirilen özelliğin değeri bir senaryo içinde doğrudan okunmalıdır.

Sınırlar

Bu yöntem tarafından döndürülen olay, fiziğe ilişkin değişiklikler için ateş etmiyor , örneğin, CFrame, AssemblyLinearVelocity, AssemblyAngularVelocity, Position veya Orientation özellikleri bir BasePart değişiklik, yerçekimi nedeniyle.Bu özelliklerdeki değişiklikleri tespit etmek için, RunService.PreSimulation gibi fizik tabanlı bir olay kullanmayı düşünün.

Ayrıca, geri dönen etkinlik çok sık değişen özelliklerin her değişikliğinde ateşlenmeyebilir veya bu tür özellikler için hiç ateşlenmeyebilir.Oyun mantığını etkileyen mülk değişiklikleri için dikkatlice test etmeniz önerilir.

Parametreler

property: string

Bağlanmak için özellik.

Varsayılan değer: ""

Dönüşler

Özellik değiştiğinde ateşleyen bir sinyal.

Kod Örnekleri

This code sample demonstrates how to save a value before a changed event fires on it in order to get more information about a change.

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")

This code sample demonstrates the equivalence of the Changed event and event returned by GetPropertyChangedSignal.

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")
Paralel yaz

IsA, nesnenin sınıfı eşitse veya bir sınıfın alt sınıfı ise olduğunda doğru döndürür.Bu işlev, diğer dillerdeki operatörlerine benzer ve tip introspeksiyonu biçimidir.Sınıf mirasını görmezden gelmek için, doğrudan ClassName özellik yerine test edin.Yerli Luau veri türlerini (sayı, dizivb.) kontrol etmek için işlevler type ve typeof kullanın.

En yaygın olarak, bu işlev bir nesnenin bir tür parça olup olmadığını test etmek için kullanılır, örneğin Part veya WedgePart , çünkü bunlar BasePart 'dan (抽象 sınıf) miras alır.Örneğin, eğer hedefiniz bir karakterin tüm uzuvlarını aynı renge değiştirmekse, çocuklar üzerinde döngü yapmak için kullanabilirsiniz, ardından özelliksiz nesneleri filtrelemek için IsA'yı kullanabilirsiniz:


local Players = game:GetService("Players")
local function paintFigure(character, color)
-- Karakterin çocuk nesneleri üzerinde döngü yap
for _, child in character:GetChildren() do
-- Gömlek, Pantolon ve Humanoid gibi parça olmayan nesneleri filtrele
-- R15 MeshPart'i ve R6 Part'i kullanıyor, bu yüzden her ikisini de tespit etmek için Buradaki BasePart'i kullanıyoruz:
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(Players.Player.Character, BrickColor.new("Bright blue"))

Tüm sınıflar Object 'dan miras aldığından, object:IsA("Object") 'yi çağırmak daima gerçek döndürecektir.

Parametreler

className: string

Nesnenin sınıfının kontrol edileceği sınıf. Harfli.

Varsayılan değer: ""

Dönüşler

Nesnenin sınıfının eşleştiği veya verilen sınıfın bir alt sınıfı olup olmadığını tanımlar.

Kod Örnekleri

Demonstrates determining the class of Workspace using Instance:IsA()

Workspace is of class 'Workspace', so the first statement is true. Workspace is not of class 'BasePart', so the second statement is false. Workspace inherits from Instance and therefore is of class 'Instance', so the third statement is true.

Instance:IsA()

local Workspace = game:GetService("Workspace")
print(Workspace:IsA("Workspace")) -- true
print(Workspace:IsA("BasePart")) -- false
print(Workspace:IsA("Instance")) -- true

Etkinlikler

Changed

Bu olay, bir nesne özelliği değiştirildikten hemen sonra ateşlenir ve çoğu kullanım durumuyla çalışır (aşağıdaki sınırlamalara bakın).Değiştirilen bir özniteliğin yeni değeri değil bir parametre olarak geçmediğinden, erişilmesi gerekir object[property] kullanarak.Örneğin:


object.Changed:Connect(function(property)
print("The new property's value is", object[property])
end)

Sadece bir özel özelliğin değişimini dinlemeye ilgi duyuyorsanız, bunun yerine GetPropertyChangedSignal() yöntemini kullanmayı düşünün.

For ValueBase nesneleri gibi IntValue ve StringValue , bu olay sadece nesnenin Value özellikleri değiştiğinde ateşlenir.ValueBase nesnelerdeki diğer değişiklikleri tespit etmek için, bunun yerine GetPropertyChangedSignal() kullanın.

Sınırlar

Bu etkinlik fiziğe ilişkin değişiklikler için ateş etmiyor , örneğin CFrame, AssemblyLinearVelocity, AssemblyAngularVelocity, Position veya Orientation özellikleri bir BasePart değişiklik nedeniyle yerçekimi tarafından yapılan.Bu özelliklerdeki değişiklikleri tespit etmek için, RunService.PreSimulation gibi fizik tabanlı bir olay kullanmayı düşünün.

Ayrıca, bu olay çok sık değişen özelliklerin her değişikliğinde ateşlenmeyebilir veya bu tür özellikler için hiç ateşlenmeyebilir.Oyun mantığını etkileyen mülk değişiklikleri için dikkatlice test etmeniz önerilir.

Parametreler

property: string

Değişen özellik adı.


Kod Örnekleri

This sample demonstrates the subtleties of the Changed event on normal objects and "-Value" objects.

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"

This code sample demonstrates the Changed event firing within a parent object.

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