Object
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Nesne, Roblox sınıf hiyerarındaki tüm sınıflar için temel bir sınıf. Roblox motoru tarafından tanımlanan her diğer sınıf, Nesne'nin tüm üyelerini miras alır. Doğrudan Oluşturma mümkün değildir.
Özet
Özellikler
Bu okunabilir bir yazılım sınıfını temsil eden sadece okunur bir yazılım yapısına aittir.
Yöntemler
Verilen öğenin özelliği değiştirildiğinde çalıştıran bir etkinliği alın.
Bir nesnenin sınıfı verilen sınıftan uyumludur veya miras alırsa geri döner.
Etkinlikler
Etkisizleştirme, öğenin özelliği değiştirdiğinde derhal ateşlenir, ancak bazı sınırlamalarla.
Özellikler
ClassName
Bu okunabilir bir yazılım sınıfını temsil eden sadece okunur bir yazılım yapısına aittir.
Bu özellik, yazgöre nesneleri tanımlamak için kullanılan çeşitli diğer işlevlerle birlikte kullanılabilir,例如 Object:IsA() veya Instance:FindFirstChildOfClass() .
Not Bu özellik sadece okunur ve bu nedenle scriptler tarafından değiştirilemez. Bir nesnenin sınıfını değiştirmek isteyen geliştiriciler bunun yerine yeni bir Object oluşturmalılar.
ClassName, bir nesnenin klas özelliklerine göre kayıt içindeki kayıt içindeki kayıt olup olmadığını kontrol etmek için kullanılabilir. Örneğin:
for _, child in workspace:GetChildren() doif child.ClassName == "Part" thenprint("Found a Part")-- will find Parts in model, but NOT TrussParts, WedgeParts, etcendend
Yöntemler
GetPropertyChangedSignal
Bu yöntem, Changed etkinliğinin aynı şekilde davranmasını sağlayan bir etkinliği döndürür, ancak verilen özellik sadece değiştirildiğinde başlar. Genellikle bu yöntemi, özellik adını kontrol eden aynı Class.Object.Changed|Changed ile bağlantı olarak
ValueBase nesneler, örneğin IntValue ve StringValue gibi, modifiye edilmiş bir Class.Object.Changed|Changed etkinliği kullanır. Bu yüzden bu yöntem, bu nesnelerin diğer özelliklerindeki değişiklikleri tespit etmenin bir
Bu olay bağlantılı bir işlevle hiçbir argüman geçmez, bu yüzden değiştirilen özelliğin değeri doğrudan bir kriptte okunmalıdır.
Sınırlamalar
Bu yöntemin döndürdüğü etkinlik yok fiziksel
Ayrıca, özelliklerin çok sık değiştirilmesi nedeniyle oluşan olaylar her özellik değiştirilmesinde başarısız olabilir ve/veya hiç başarısız olmayabilir. Oyun mantığını etkileyen özellik değişiklikleri için lütfen dikkatli test yapın.
Parametreler
Bağlanacak özellik.
Dönüşler
Özellik değiştirildiğinde çalışan bir sinyal.
Kod Örnekleri
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, nesnenin sınıfının eşdeğer veya bir alt klas olup olmadığını içerir. Bu işlev, diğer dillerdeki instantiate operatör
En yaygın olarak, bu işlev genellikle bir nesnenin bir tür parçası olup olmadığını test etmek için kullanılır,
local function paintFigure(character, color)
-- Karakterin çocuk nesilleri üzerinde itere
for _, child in character:GetChildren() do
-- Gömlek, Pantolon ve Humanoid gibi olmayan parçaları filtreleyin
-- R15 MeshPart kullanır ve R6 Part kullanır, bu yüzden BasePart'ı burada kullanarak ikisini de tespit ederiz:
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))
Tüm sınıflar Object dan miras aldığından, object:IsA("Object") çağırmak her zaman doğru olur.
Parametreler
Nesnenin sınıfına düzenlenen sınıfın taraması için kullanılan sınıf. Dayanıklı.
Dönüşler
Nesnenin sınıfının verilen sınıfın bir altında olup olmadığını açıklar.
Kod Örnekleri
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ğinin değiştirildiğinden derhal sonra başlar ve çoğu kullanım durumuyla çalışır (aşağıda sınırlamaları göster). Değiştirilen bir özelliğin yeni değeri değil bir parçası olarak geçerlidir, bu yüzden object[property] ile erişilmelidir. Örneğin:
object.Changed:Connect(function(property)
print("The new property's value is", object[property])
end)
Tek bir özelliğin değişimini dinlemekle ilgileniyorsanız, bunun yerine GetPropertyChangedSignal() yöntemini kullanmayı düşünün.
For ValueBase nesneleri, örneğin IntValue ve StringValue gibi, bu etkinlik sadece nesnenin 1> Value1> özelliği değiştiğinde başlar. To detect other changes in 4> Class.ValueBase
Sınırlamalar
Bu etkinlik yapmaz fiziksel değişiklikler için, örneğin <
Ayrıca, bu olay çok sık değiştirilen özelliklerin herhangi birinde çalışmayabilir ve/veya hiç çalışmayabilir. Game logic'i etkileyen özellik değişiklikleri için dikkatli bir şekilde test edilmesi önerilir.
Parametreler
Değiştirilen öğenin adı.
Kod Örnekleri
-- 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