Instance
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Instance Roblox sınıf hiyerarşisindeki tüm sınıfların temel sınıfıdır, DataModel ağacının bir parçası olabilir.
Doğrudan kök Instance nesneler oluşturmak mümkün değildir, ancak özel Instance.new() yapıcı kod aracılığıyla nesneler oluşturur ve sınıfın adını bir parametre olarak alır ve oluşturulan nesneyi geri verir.
Özet
Özellikler
Bir Instance ve onun soyundakilerin Instance:Clone() kullanarak klonlanıp kaydedilebileceğini veya yayınlanabileceğini belirler.
Bu kapsayıcının içinde kullanılabilecek yeteneklerin seti.
Eşsiz olmayan bir tanımlayıcı Instance .
Instance 'nin hiyerarşik ebeveynini belirler.
CoreGui nesnelerini korumak için kullanılan eski bir özellik.
Instansı bir kumlanmış kutu olarak dönüştürür.
durumiçin benzersiz bir tanımlayıcı.
Yöntemler
Etiketi instansa durum.
Bu işlev, bir durumtüm çocukları yok eder.
Bir örneğin ve tüm altlarının bir kopyasını oluştur ve Archivable olmayan örnekleri görmezden gel.
Instance.Parent özelliğini nil olarak ayarlar, Instance.Parent özelliğini kilitler, tüm bağlantıları keser ve tüm çocuklar için Destroy() çağrır.
Verilen adın eşit olduğu Instance ın ilk atasını döndürür, ki Instance.Name verilen adın eşit olduğu.
Verilen sınıfa eşit olan Instance 'in ilk atasını döndürür Object.ClassName .
Verilen sınıf için Instance geri dönen ilk atadan geri döner, kimin için Object:IsA() gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür
Verdiğiniz adla bulunan ilk çocuğu döndürür Instance ile bulunan çocuk.
Verilen sınıf adına eşit olan Instance ın ilk çocuğunu döndürür ClassName .
Verilen sınıf için Instance geri dönen ilk çocuğu için Object:IsA() geri döner ve verilen sınıf için gerçek döndürür.
Verdiği Instance.Name ile bulunan ilk soyundan geri döner.
Eğer varsa, İstisna ile ilişkili Actor döndürür.
Verilen öznitelik adına atanmış olan değeri döndürür.
Verilen öznitelik değiştiğinde ateşleyen bir olay döndürür.
durumözniteliklerin bir sözlüğünü döndürür.
Tüm örnek çocuklarını içeren bir dizi döndürür.
Roblox tarafından içeride kullanılan depurasyon kimliğinin kodlanmış bir dizesini döndürür.
İstisna durumunun tüm soyundan gelen bir dizi içeren bir dizi döndürür.
İstisnaın atasını tanımlayan bir dize döndürür.
İstisnaya uygulanan tüm etiketlerin bir dizi alınır.
İstisna sahibi bir etikete sahip olup olmadığını kontrol edin.
Bir Instance bir verilen soyundan bir ata ise gerçek döndürür if true döndürür.
Bir Instance bir verilen atadan bir soyundan geliyorsa true döndürür.
Belirtilen özellikte depolanan değer varsayılana değilse true döndürür.
Bir etiketi durumkaldırır.
Verdiği isimle özelliği verilen değere ayarlar.
Verilen adla çocuğu Instance ile döndürür. Eğer çocuk mevcut değilse, bunu yapana kadar mevcut iş parçasını verecektir.
Etkinlikler
Nesnenin Instance.Parent özelliği veya atalarından biri değiştiğinde ateş eder.
Bir özellik Instance üzerinde değiştirildiğinde her zaman ateş eder.
Bir nesne buna ebeveyn atandıktan sonra yangınlar Instance .
Bir çocuk bu Instance 'dan kaldırıldıktan sonra yangınlar çıkar.
Bir soyundan sonra Instance 'ye bir atış eklenirken yangınlar yanar.
Bir çocuğun Instance çıkarılmasından hemen önce yangınlar çıkar.
Durum hemen önce (veya daha sonra) yok edilene kadar (veya ertelenir) örnek yok edildiğinde hemen yangınlar çıkar Instance:Destroy() .
Özellikler
Archivable
Bu özellik, deneyim yayınlandığında veya kaydedildiğinde örnek dahil edilip edilmeyeceğini veya Clone() durumatalarından birine çağrıldığında belirler.Bir örneğe doğrudan çağrılmak Clone() örneğin eğer o örnek nil değilse Archivable dönecektir.
Studio'da Yinelenen veya Kopyala / Yapıştır seçeneklerini kullanarak bir nesneyi kopyalamak, kendi özelliklerini görmezden gelip kopya için ayarlayacaktır.
local part = Instance.new("Part")print(part:Clone()) --> Partpart.Archivable = falseprint(part:Clone()) --> nil
Capabilities
Bu durumiçindeki senaryolar için kullanılabilen yeteneklerin seti.Yeteneklerin etkili olması için, Instance.Sandboxed özelliğinin etkinleştirilmesi gerekir.
Bu özellik deneysel bir özellik tarafından kullanılır. Daha fazla ayrıntı için senaryo yetenekleri bakın.
Name
Eşsiz olmayan bir tanımlayıcı Instance .İsimler, nesne hiyerarşisini organize etmek ve özel nesnelere erişim izin vermek için kullanılır, böylece kodlar belirli nesnelere erişebilir.Bir instanstanın adı boyutunda 100 karakterden fazla olamaz.
Bir nesnenin adı genellikle aşağıdaki yöntemleri kullanarak veri modeli hierarşisi aracılığıyla nesneye erişmek için kullanılır:
local Workspace = game:GetService("Workspace")local baseplate = Workspace.Baseplatelocal baseplate = Workspace["Baseplate"]local baseplate = Workspace:FindFirstChild("BasePlate")
Bir nesneye nokta işlecisi kullanarak erişilebilir hale getirmek için ( . ), adı bir alt çizgi veya harfle başlamalı ve adın geri kalanı sadece harfler, sayılar veya alt çizgiler içerebilir (başka özel karakter yok).Bir nesnenin adı bu sözdizimine uymazsa, nokta işlecisi kullanılarak erişilemeyecek ve Luau adını tanımlayıcı olarak yorumlamayacaktır.
Aynı adı taşıyan birden fazla nesne kardeşse, bir nesneyi bu adla indekslemeye çalışmak, örneğin Instance:FindFirstChild() gibi, ancak hep istediğiniz nesne değil, sadece bir nesneyi döndürecektir.Belirli bir nesneye kod aracılığıyla erişilmesi gerekiyorsa, benzersiz bir ad vermeniz veya kardeşlerinin aynı adı paylaşmadığını garanti etmeniz önerilir.
Ayrıca bakın Instance:GetFullName() nesnenin hiyerarşisini içeren bir tam adı elde etmek için.
Parent
The Parent özelliği, Instance 'in hiyerarşik ebeveynini belirler.Bu özellik nasıl ayarlandığından bahsederken aşağıdaki terminoloji yaygın olarak kullanılır:
Bir nesne bir çocuktur ebeveyni veya o nesnenin çocuğu olur, ya da o nesnenin Parent o nesneye ayarlanır, başka bir nesne.
Bir mirasçıları ın Instance oğulları o nesnenin çocuklarıdır, plus da oğulların soyları da.
Bir örneğin atalarının tümü, örneğin bir instansının bir altı olduğu tüm nesnelerdir.
Birçok diğer API üyesinin adını aldığı Parent özellikten gelir, örneğin GetChildren() ve FindFirstChild().Bu özellik ayrıca bir nesnenin deneyimde olup olmadığını yönetmek veya kaldırılması gerektiğini belirlemek için kullanılır.Bir nesnenin ebeveyni DataModel 'de olduğu sürece, bir değer depolanır veya başka bir nesnenin özelliği tarafından referanslandırılırsa, nesne deneyimde kalır; aksi takdirde, nesne otomatik olarak kaldırılır.
çağrısı bir 'in ve tüm yavrularının 'ine ayarlanacak ve ayrıca kilitleyecek özellik.Yıkılmış bir nesnenin Parent kısmını ayarlarken bir hata oluşur.
Yeni oluşturulan nesneler Instance.new() kullanarak yaratılırken ebeveyn olmayacak ve genellikle bir ayarlabelirlenene kadar görünmeyecek veya işlev görmeyecek.
Nesne Replikasyonu
Sunucu tarafından oluşturulan bir nesne, yinelenen bir nesneye ebeveyn olana kadar müşterilere yinelenmeyecektir.Bir nesne oluştururken ve birçok özellik ayarlarken, Parent özelliğini sona ayarlamak önerilir.Bu, nesnenin birçok özellik değişikliğini yerine yeniden yapmasını engeller. bir kez yeniden yapar.
local Workspace = game:GetService("Workspace")-- Yeni durumebeveynini son olarak ayarla (önerilir)local part = Instance.new("Part")part.Position = Vector3.new(0, 10, 0)part.Parent = Workspace
Ancak, ebeveynlik parçalarının henüz ebeveyni belirlenmediği bir Model ebeveynliği, modelin yeniden yapılmış olmayacağından, her bir parçayı bu model için ebeveynleştirmek kabul edilebilir çünkü model yeniden yapılmayacaktı.
RobloxLocked
Bu özellik, CoreGui hizmetindeki nesnelerin yetkisiz kullanıcılar tarafından değiştirilmesini engellemek için kullanılırdı.Kaldırıldı ve hiçbir şey yapmıyor.
Sandboxed
Instansı bir kumlanmış kutu konteyneri haline getirir, özel bir kapsayıcıdaki kodların yapabileceği eylemleri sınırlayan deneysel bir özellik.Daha fazla ayrıntı için senaryo yeteneklerini görün.
UniqueId
Özel bir tanımlayıcı, benzersiz olmayan durum, Instance.Name farklı olan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benz olmayan benz olmayan benz olmayan benz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benzersiz olmayan benz olmayan benz olmayan benz olmayan benz olmayan benz olmayan benz olmayan benz olmayan benz olmayan benz olmayan olmayan benz olmayan benz olmayan benz olmayan benz olmayan benz olmayan olmayan benz olmayan olmayan benz olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmay olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmay olmayan olmayan olmayan olmayan olmayan olmay olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmayan olmay olmayan olmayan olmayan olmayan olmay olmayan olmayan olmayan olmayan olmay olmayan olmayan olmayan olmayan olmay olmayan olmayan olmayan olmayan olmay olmayan olmayan olmayan olmayan olmay olmayan olmayan olmay olmay olmayan olmay olmay olmayan olmay olmay olmayan olmay olmay olmayan olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmaymay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay olmay ol
Yöntemler
AddTag
Bu yöntem, etiket uygulanırsa etiket zaten uygulanmışsa etkisi olmadan durumbir etiket uygular.Başarıyla bir etiket eklemek, verilen etiketle CollectionService:GetInstanceAddedSignal() tarafından oluşturulan bir sinyali ateş edecektir.
Uyarılar
İstemci tarafından eklenen bir durumetiketi, sunucu daha sonra bu örnek üzerinde bir etiket ekler veya kaldırırsa, sunucu tüm etiketleri bir araya getirir ve önceki etiketleri üzerine yazar.
Bir durumetiket atarken, etiketin işlevini vermek için bazı kaynakların kullanılması yaygındır, örneğin etkinlik bağlantıları veya tablolar.Hafıza sızıntılarını önlemek için, bunları temizlemek (bağlantı kes, nil olarak ayarla, vb.) bir etiket için artık gerekmediğinde iyi bir fikirdir.Instance:RemoveTag() , Instance:Destroy() veya CollectionService:GetInstanceRemovedSignal() tarafından döndürülen bir sinyale bağlı bir işlev çağrırken bunu yapın.
Parametreler
Dönüşler
ClearAllChildren
Bu işlev, bir durumtüm çocuklarını ve torunlarını yok eder.
Tüm çocukları ve torunları yok etmek istemiyorsanız, bu çocukları/torunları döngüye sokmak için ya Instance:GetChildren() ya da Instance:GetDescendants() kullanın ve neyi yok etmek istediğinizi seçin.Örneğin, aşağıdaki kod örneği tüm BaseParts bir Model 'dan inenleri yok edecektir:
local Workspace = game:GetService("Workspace")local model = Workspace:FindFirstChild("TestModel")for _, descendant in model:GetDescendants() doif descendant:IsA("BasePart") thendescendant:Destroy()endend
Dönüşler
Kod Örnekleri
This example creates a Part and adds a few sparkle objects to the part. Then it calls Part:ClearAllChildren() to remove all of the children.
local part = Instance.new("Part")
-- add some sparkles
for _ = 1, 3 do
local sparkles = Instance.new("Sparkles")
sparkles.Parent = part
end
print("Part has", #part:GetChildren(), "children")
--> Part has 3 children
part:ClearAllChildren()
print("Part has", #part:GetChildren(), "children")
--> Part has 0 children
Clone
Clone() bir örneğin ve tüm yavrularının bir kopyasını oluşturur ve Archivable olmayan tüm örnekleri görmezden gelir.Kök örneğin kopyası bu yöntem tarafından geri döndürülür ve Parent ı nil olarak ayarlanır.Not: Eğer örnek kendisi için ayarlanmışsa, bu işlev döndürecektir.
Bir referans özelliği, örneğin ObjectValue.Value , klonlanmış bir durumayarlanırsa, kopyanın özelliğinin değeri orijinalin değerine bağlıdır:
- Bir referans özelliği ayrıca klonlanmış bir örneğe işaret ediyorsa, kopya referans olacaktır.
- Bir referans özelliği klonlanmamış bir nesneye referans veriyorsa , aynı değer kopyada korunur.
Dönüşler
Kod Örnekleri
Demonstrates cloning a model using Instance:Clone().
local Workspace = game:GetService("Workspace")
-- Get a reference to an existing object
local model = script.Parent.Model
-- Create a clone of the model
local clone = model:Clone()
-- Move the clone so it's not overlapping the original model
clone:PivotTo(model.PrimaryPart.CFrame - (Vector3.xAxis * 10))
-- Add the clone to the Workspace
clone.Parent = Workspace
Destroy
Instance.Parent özelliğini nil olarak ayarlar, Instance.Parent özelliğini kilitler, tüm bağlantıları keser ve tüm çocuklar için Destroy() çağrır.Bu işlev artık gerekmeyen nesneleri imha etmenin doğru yoludur.
Gerekli olmayan nesnelerin atılması önemlidir, çünkü bir yerde gereksiz nesneler ve bağlantılar zamanla ciddi performans sorunlarına yol açabilen belleği tüketir.
Bir nesneye Destroy() üzerinde çağrıldıktan sonra en iyi uygulama olarak, nesneyi (veya onun soyundakilerini) referans alan herhangi bir değişkeni nil 'ye ayarlayın.Bu, kodunuzun nesne ile ilgili herhangi bir şeye erişmesini engeller.
local part = Instance.new("Part")part.Name = "Hello, world"part:Destroy()-- Bunu yapmayın:print(part.Name) --> "Merhaba, dünya"-- Yukarıdaki satırın çalışmasını engellemek için bunu yapın:part = nil
Bir Instance bu yöntemle yok edildikten sonra, Instance.Parent özelliği kilitli olduğundan tekrar kullanılamaz.To geçici olarak bir nesneyi yok etmek yerine kaldırmak için, Parent``nil.Örneğin:
local Workspace = game:GetService("Workspace")object.Parent = niltask.wait(2)object.Parent = Workspace
Bir nesneyi belirli bir süre sonra yok etmek için, Debris:AddItem() kullanın.
Dönüşler
Kod Örnekleri
Demonstrates destroying a Part using the Instance:Destroy() function.
This function is the correct way to dispose of objects that are no longer required.
local part = script.Parent.Part
part:Destroy()
FindFirstAncestor
Verilen adın eşit olduğu Instance ın ilk atasını döndürür, ki Instance.Name verilen adın eşit olduğu.
Bu işlev yukarı doğru çalışır, yani durumhemen Instance.Parent 'de başlar ve DataModel 'ye doğru çalışır.Eşleşen bir ata bulunamıyorsa, nil döndürür.
Aşağıdaki kod parçacığı, adı Car olan nesnenin ilk atasını bulurdu.
local car = object:FindFirstAncestor("Car")
Belirli bir sınıfın atalarını bulan bu işlevin çeşitleri için, lütfen Instance:FindFirstAncestorOfClass() ve Instance:FindFirstAncestorWhichIsA() görün.
Parametreler
Arayılacak Instance.Name .
Dönüşler
FindFirstAncestorOfClass
Verilen sınıfa eşit olan Instance 'in ilk atasını döndürür Object.ClassName .
Bu işlev yukarı doğru çalışır, yani durumhemen Instance.Parent 'de başlar ve DataModel 'ye doğru çalışır.Eşleşen bir ata bulunamıyorsa, nil döndürür.
Bu işlevin yaygın bir kullanımı, Model bir BasePart ait olduğunu bulmaktır. Örneğin:
local model = part:FindFirstAncestorOfClass("Model")
Bu işlev, Instance:FindFirstAncestor() özelliğini Object.ClassName yerine kontrol eden bir çeşit Instance.Name varyantıdır.Instance:FindFirstAncestorWhichIsA() ayrıca mevcut, sınıf mirasına saygı göstermek için Object:IsA() yöntemi yerine kullanıyor.
Parametreler
Arayılacak Object.ClassName .
Dönüşler
FindFirstAncestorWhichIsA
Verilen sınıf için Instance geri dönen ilk atadan geri döner, kimin için Object:IsA() gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür gerçek döndürür
Bu işlev yukarı doğru çalışır, yani durumhemen Instance.Parent 'de başlar ve DataModel 'ye doğru çalışır.Eşleşen bir ata bulunamıyorsa, nil döndürür.
Farklı olarak Instance:FindFirstAncestorOfClass() , bu işlev sınıf mirasına saygı gösteren Object:IsA() kullanır. Örneğin:
print(part:IsA("Part")) --> trueprint(part:IsA("BasePart")) --> trueprint(part:IsA("Instance")) --> true
Bu nedenle, aşağıdaki kod örneği, bir , veya olup olmadığına bakmaksızın ilk atadan geri dönecektir.
local part = object:FindFirstAncestorWhichIsA("BasePart")
Ayrıca bakın Instance:FindFirstAncestor() .
Parametreler
Arayılacak Object.ClassName .
Dönüşler
FindFirstChild
Verilen adla birlikte Instance ilk çocuğu döndürür veya hiçbir çocuk yoksa nil .Eğer seçici recursive argumenti true ise, bu işlev tüm altları arar, ancak sadece Instance 'in acil çocukları değil.
Bir Nesnenin Varlığını Kontrol Etme
FindFirstChild() devam etmeden önce bir nesnenin var olup olmadığını doğrulamanız gerekiyorsa, devam etmek için gereklidir.Nokta işlecisi kullanılarak bir çocuğun adıyla indekslenmesi denemesi, çocuk mevcut değilse bir hata verir.
local Workspace = game:GetService("Workspace")-- Parça çalışma alanında mevcut değilse aşağıdaki satır hatalarıWorkspace.Part.Transparency = 0.5
Önce FindFirstChild() kontrol etmek için kullanın Part , ardından ihtiyacı olan kodu çalıştırmak için bir if ifadesi kullanın.
local Workspace = game:GetService("Workspace")local part = Workspace:FindFirstChild("Part")if part thenpart.Transparency = 0.5end
Adı bir özellikle eşleşen bir çocuk bulmak
Bazen bir nesnenin Name 'si onun Parent 'sinden aynıdır.Nokta işlecisini kullanırken, özellikler bir ismi paylaşıyorlarsa çocuklardan önceliklidir.
Aşağıdaki örnekte, "Renk" adlı bir Folder "Renk" adlı bir Part , ayrıca Part.Color özelliğine sahip bir eklenir.Part.Color , Klasör değil, Color3 'a işaret eder.
local part = Instance.new("Part")local folder = Instance.new("Folder")folder.Name = "Color"folder.Parent = partlocal c = part.Color --> Bir Renk3local c2 = part:FindFirstChild("Color") --> The Folder
Bu şekilde FindFirstChild() kullanmanın bir avantajı, yeni özelliklerin tanıtılmasının kodunuza bir risk getirmemesi.
Performans Notları
FindFirstChild() nokta işlecisini kullanmaktan yaklaşık olarak% 20 daha uzun sürer ve bir nesneye referans depolamaktan neredeyse 8 kat daha uzun sürer.Bu nedenle, sıkı döngüler veya RunService.Heartbeat ve RunService.PreRender 'ye bağlı işlevler gibi performansa bağlı kodlarda çağırmaktan kaçınmalısınız.Bunun yerine, sonucu bir değişken olarak depolayın veya belirli bir ismin çocuğunun mevcut olduğunu tespit etmek için ChildAdded veya WaitForChild() kullanmayı düşünün.
Parametreler
Arayılacak Instance.Name .
Arama recursively yapılmalı mı yoksa yapılmamalı mı.
Dönüşler
Kod Örnekleri
The below would look in Workspace for an object name "Brick". If found, it will change the name of the object to "Foo".
local found = workspace:FindFirstChild("Brick")
if found then
found.Name = "Foo"
end
FindFirstChildOfClass
Verilen Instance ile eşit olan ClassName 'in ilk çocuğunu döndürür className.Farklı olarak , bu işlev sadece sınıf mirasını görmezden gelen sınıfların nesnelerini döndürür, sınıf mirasını görmezden gelir.Eşleşen bir çocuk bulunmazsa, bu işlev nil döndürür.
Parametreler
Arayılacak Object.ClassName .
Dönüşler
Kod Örnekleri
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid
while not humanoid do
humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then
character.ChildAdded:Wait()
end
end
FindFirstChildWhichIsA
Verilen sınıf için Instance geri dönen ilk çocuğu için Object:IsA() geri döner ve verilen sınıf için gerçek döndürür.
Eşleşen bir çocuk bulunmazsa, bu işlev nil döndürür.Opsiyonel recursive argüman doğruysa, bu işlev yalnızca Instance 'in hemen çocukları değil tüm torunları arar.
Farklı olarak Instance:FindFirstChildOfClass() , bu işlev sınıf mirasına saygı gösteren Object:IsA() kullanır. Örneğin:
print(part:IsA("Part")) --> doğruprint(part:IsA("BasePart")) --> doğruprint(part:IsA("Instance")) --> true
Bu nedenle, aşağıdaki kod örneği, bir , veya olup olmadığına bakmaksızın ilk çocuğu döndürecektir.
local part = object:FindFirstChildWhichIsA("BasePart")
İsmiyle bir çocuk arayan geliştiriciler, bunun yerine Instance:FindFirstChild() kullanmalıdır.
Parametreler
Arayılacak Object.ClassName .
Arama recursively yapılmalı mı yoksa yapılmamalı mı.
Dönüşler
FindFirstDescendant
Verdiği Instance.Name ile bulunan ilk soyundan geri döner.
Bu yöntem devre dışıdır ve kullanılamaz.Bir durumilk soyundakini bulmak için, yerine recursive parametresini kullanmayı düşünün Instance:FindFirstChild() .
Parametreler
Aranacak Instance.Name .
Dönüşler
GetActor
Eğer Instance bir Actor ise, Actor kendisi iade edilir.Aksi takdirde, en yakın atası Actor geri döndürülür.Eğer hiç ata bir Actor değilse, sonuç nil dir.
Dönüşler
GetAttribute
Bu yöntem, verilen öznitelik adına atanmış olan değeri döndürür. Eğer herhangi bir öznitelik atanmadıysa, nil döndürülür.
Örneğin, aşağıdaki kod parçacıkları ayarlanır ve ardından örneğin InitialPosition özniteliğinin değeri alınır:
local Workspace = game:GetService("Workspace")local part = Workspace.Partpart:SetAttribute("InitialPosition", part.Position)local initialPosition = instance:GetAttribute("InitialPosition")print(initialPosition)
Ayrıca bakın
- Instance:SetAttribute() özniteliği verilen isimle verilen değere ayarlayan öznitelik, which sets the attribute with the given name to the given value.
- Instance:GetAttributes() , her bir durum özniteliği için bir anahtar değer çiftleri sözlüğü döndüren
Parametreler
Alınan özniteliğin adı.
Dönüşler
Verdiğiniz öznitelik adına atanan değer. Eğer bir öznitelik atanmadıysa, nil döndürülür.
GetAttributeChangedSignal
Bu işlev, yalnızca belirli verilen özellük değiştiğinde ateşlenen bir olayı döndürür; aslında özellüklere benzer, ancak özellüklere benzer.
Bu yöntemi, öznitelik adını kontrol eden bir işlevle bağlantı yerine kullanmak genellikle iyi bir fikirdir Changed .Aynı öznitelik adıyla aynı nesneye yapılan sonraki bu yönteme çağrıları aynı olayı döndürür.
Aşağıdaki kod örneği, parçanın InitialPosition özniteliği değiştiğinde işlevi attributeChanged() ateşleyen bir sinyal döndürür:
local Workspace = game:GetService("Workspace")
local part = Workspace.Part
part:SetAttribute("InitialPosition", part.Position)
local function attributeChanged()
print("Attribute changed")
end
part:GetAttributeChangedSignal("InitialPosition"):Connect(attributeChanged)
Ayrıca bakın Instance.AttributeChanged , herhangi bir öznitelik değiştirildiğinde istisna olarak durumateş eden.
Parametreler
Değişim sinyali iade edilen belirtilen özniteliğin adı.
Dönüşler
Verilen öznitelik değiştiğinde ateşlenen bir olay.
GetAttributes
Bu yöntem, anahtarın adı anahtar ve değerin bir değeri olmayan her öznitelik için bir anahtar-değer çifti sözlüğü döndürür. This method returns a dictionary of key‑value pairs for each attribute where the key is the attribute's name and the value is a non‑nil value.
Örneğin, aşağıdaki kod parçacığı bir durumöznitelikleri ve değerleri çıkarır:
local Workspace = game:GetService("Workspace")local part = Workspace.Partpart:SetAttribute("InitialPosition", part.Position)part:SetAttribute("CanUse", true)for name, value in part:GetAttributes() doprint(name .. " = " .. value)end
Ayrıca bakın Instance:GetAttribute() , verilen öznitelik adına atanan değeri döndüren kişi.
Dönüşler
Dize için öznitelik → varyant çiftleri için her bir özniteliğin adı ve varyant bir non-sıfır değer olduğunda bir sözlük. A dictionary of string → variant pairs for each attribute where the string is the name of the attribute and the variant is a non-nil value.
GetChildren
Tüm durumun doğrudan çocuklarını içeren bir dizi (sayısal indeksli bir tablo) veya nesnenin eşit olduğu her Instance herkesi döndürür Parent herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndürür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi döndür herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkesi herkes herkesi herkesi herkesi herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes her herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkes herkesDizgi, bir sayısal veya genel for döngüsü kullanarak döngülenebilir:
local Workspace = game:GetService("Workspace")-- Sayısal for döngü örneğilocal children = Workspace:GetChildren()for i = 1, #children dolocal child = children[i]print(child.Name .. " is child number " .. i)end
local Workspace = game:GetService("Workspace")-- Genel döngü örneğilocal children = Workspace:GetChildren()for i, child in children doprint(child.Name .. " is child number " .. i)end
Çocuklar, Parent özelliklerinin nesneye ayarlanma sırasına göre sıralanır.
Ayrıca GetDescendants fonksiyonunu da görün.
Dönüşler
İstisna sınıfının çocuklarını içeren bir dizi.
Kod Örnekleri
The below would print the name of all objects currently in Workspace when ran.
local children = workspace:GetChildren()
for i = 1, #children do
print(i, children[i].Name)
end
GetDebugId
Roblox tarafından içeride kullanılan depurasyon kimliğinin kodlanmış bir dizesini döndürür. Not et:
- Bu öğe korunuyor. Onu bir Script veya LocalScript kullanmaya çalışmak bir hata verecektir.
- Bir depurasyon kimliği, depurasyon süreçlerinde kullanılan bir kimliktir.Bir depurmanın bir uygulama işlemden önce her talimatı okumasına izin verir.Roblox'taki tüm nesneler süreçler gibi davranır ve gerekirse depur edilebilen her bir çalıştırma talimatı (veya 'kod') vardır.
- Bu, benzer nesneleri birbirinden ayırmak zorunda olan eklentiler için yararlı olabilir (örneğin aynı adı paylaşan nesneler).
Parametreler
Alan uzunluğu.
Dönüşler
Sorun giderme ID dizi.
Kod Örnekleri
print(workspace:GetDebugId()) --> 39FA_12
print(workspace:GetDebugId(10)) --> 39FA2FEF4D_12
print(workspace:GetDebugId(math.huge)) --> 12
GetDescendants
Bu nesne yöntemi, o nesnenin tüm altlarını içeren bir dizi döndürür.Bir nesnenin yalnızca hemen çocuklarını döndüren Instance:GetChildren() ile aksine, bu yöntem nesnenin her çocuğunu, bu çocukların her birini ve öylece bulur.
Dönüşler
İstisnaın soyundan gelen bir dizi. An array containing the durum's descendants.
Kod Örnekleri
GetDescendants is often used to do something to all the descendants that are a particular type of object. The code in this example uses GetDescendants and Instance:IsA() to find all of the parts in the workspace and turns them green.
local descendants = workspace:GetDescendants()
-- Loop through all of the descendants of the Workspace. If a
-- BasePart is found, the code changes that parts color to green
for _, descendant in pairs(descendants) do
if descendant:IsA("BasePart") then
descendant.BrickColor = BrickColor.Green()
end
end
GetFullName
İstisnaın atasını tanımlayan bir dize döndürür.Dize, nesnenin Name ve atalarının birleşimidir ve noktalarla ayrılmıştır.The DataModel ( game ) dikkate alınmaz.Örneğin, içinde bir geri dönebilir.
Bir Instance üzerinde çağrıldığında, bu işlev aşağıdakiler dahil olmak üzere tüm ataları dikkate alır: DataModel , en üstteki bir tanesi olmadan bir Parent .
Bu işlev kayıt ve depuraj için yararlıdır.Geri döndürülen dizeyi herhangi bir yararlı işlem için parçalamaya çalışmamalısınız; bu işlev nesne isimlerinde noktaları (veya başka bir sembolü) kaçırmaz.Diğer bir deyişle, çıkısı genellikle geçerli bir Luau tanımlayıcı gibi görünse de garanti edilmez.
Dönüşler
Kod Örnekleri
This code sample demonstrates the behavior of Instance:GetFullName(). It shows how the function behaves when called on an object not in the DataModel hierarchy, and it also shows how the return value does not escape special characters.
-- Create a simple hierarchy
local model = Instance.new("Model")
local part = Instance.new("Part")
part.Parent = model
local fire = Instance.new("Fire")
fire.Parent = part
print(fire:GetFullName()) --> Model.Part.Fire
model.Parent = workspace
print(fire:GetFullName()) --> Workspace.Model.Part.Fire
part.Name = "Hello, world"
print(fire:GetFullName()) --> Workspace.Model.Hello, world.Fire
This code sample re-implements the Instance:GetFullName() function in Lua.
local function getFullName(object)
local result = object.Name
object = object.Parent
while object and object ~= game do
-- Prepend parent name
result = object.Name .. "." .. result
-- Go up the hierarchy
object = object.Parent
end
return result
end
print(getFullName(workspace.Camera)) --> Workspace.Camera
GetStyledPropertyChangedSignal
Parametreler
Dönüşler
GetTags
Bu yöntem, verilen durumuygulanan etiketlerin bir diziini içeren bir dize olarak döndürür.Etiketleri Özellikler penceresinde Studio'da veya çalışma sırasında AddTag() ekleyebilirsiniz.
Bu yöntem, bir anda bir örnek üzerinde çok sayıda etiketle bir şey yapmak istediğinizde yararlıdır.Ancak, tek bir etiketin varlığını kontrol etmek için bu yöntemi kullanmak verimsizdir; bunun yerine, belirli bir etiket için HasTag() kontrol etmek kullanın.
Dönüşler
HasTag
Bu yöntem, verilen etiket objeye eklendiyse true döndürür.Etiketleri Özellikler penceresinde Studio'da veya çalışma sırasında AddTag() .
Parametreler
Dönüşler
IsAncestorOf
Bir Instance bir verilen soyundan bir ata ise gerçek döndürür if true döndürür.
Bir Instance bir nesnenin atası olarak kabul edilirse nesnenin Instance.Parent veya ebeveyninden birinin Instance.Parent 'i Instance 'e ayarlanırsa, nesnenin atası olarak kabul edilir.
Ayrıca bakın, Instance:IsDescendantOf() .
Parametreler
Dönüşler
Kod Örnekleri
Demonstrates determining if one instance is the ancestor of another using Instance:IsAncestorOf()
Workspace and SpawnLocation are ancestors of the SpawnLocation's decal. Workspace is an ancestor of SpawnLocation.
SpawnLocation and its decal are descendants of Workspace, not ancenstors. Decal is a descendant to SpawnLocation, not an ancestor.
local Workspace = game:GetService("Workspace")
local spawnLocation = Workspace.SpawnLocation
local decal = spawnLocation.Decal
-- These statements are true
print(Workspace:IsAncestorOf(spawnLocation))
print(Workspace:IsAncestorOf(decal))
print(spawnLocation:IsAncestorOf(decal))
-- These statements are false
print(spawnLocation:IsAncestorOf(Workspace))
print(decal:IsAncestorOf(Workspace))
print(decal:IsAncestorOf(spawnLocation))
IsDescendantOf
Bir Instance bir verilen atadan bir soyundan geliyorsa true döndürür.
Bir nesnenin kaldırıldığını kontrol etmek için IsDescendantOf() ile bir nil parametresi kullanılamayacağını unutmayın.
Ayrıca bakın Instance:IsAncestorOf() .
Parametreler
Dönüşler
Kod Örnekleri
local part = Instance.new("Part")
print(part:IsDescendantOf(game))
--> false
part.Parent = workspace
print(part:IsDescendantOf(game))
--> true
part.Parent = game
print(part:IsDescendantOf(game))
--> true
IsPropertyModified
Belirtilen özellikte depolanan değer varsayılana değilse true döndürür.Örneğin, bir Rotation özelliğinin TextLabel çıkışı 0 gösteriyorsa, etikete IsPropertyModified("Rotation") çağrılması, false çünkü 0 , varsayılan değer TextLabel.Rotation için olduğu için geri dönecektir.
Parametreler
Dönüşler
Özelliklerin değiştirilip değiştirilmediğini belirten boolean.
RemoveTag
Bu yöntem, bir durumbir etiketi kaldırır.Nesne etikete sahip değilse bir hata atmayacaktır.Başarıyla bir etiketi kaldırmak, verilen etiketle oluşturulan bir sinyali ateş edecektir CollectionService:GetInstanceRemovedSignal().
Bir durumetiket atarken, etiketin işlevini vermek için bazı kaynakların kullanıldığı yaygındır, örneğin etkinlik bağlantıları veya tablolar.Hafıza sızıntılarını önlemek için, bunları temizlemek (bağlantı kes, nil olarak ayarla, vb.) bir etiket için artık gerekmediğinde iyi bir fikirdir.
Parametreler
Dönüşler
ResetPropertyToDefault
Bir özelliği varsayılan değerine sıfırlar.Örneğin, ResetPropertyToDefault("Rotation") 'yi bir TextLabel 'a çağırmak, özelliğin Rotation 'ini 0 'a ayarlamaya eşdeğerdir (özelliğin varsayılan değeri).
Parametreler
Dönüşler
SetAttribute
Bu yöntem, verilen adla verilen özniteliği verilen değere ayarlar.Verilen değer nil ise, öznitelik öntanımlı olarak döndürüldüğünden öznitelik kaldırılacaktır, çünkü nil öntanımlı olarak döndürülür.
Örneğin, aşağıdaki kod parçacığı, durumInitialPosition özniteliğini Vector3.new(0, 10, 0) olarak ayarlar:
local Workspace = game:GetService("Workspace")local part = Workspace.Partpart:SetAttribute("InitialPosition", Vector3.new(0, 10, 0))
Sınırlar
İsim gereksinimleri ve sınırları:
- İsimler sadece alfanumerik karakterler ve alt çizgi kullanmalıdır.
- Boşluklar veya benzersiz semboller izin verilmez.
- Dize 100 karakterden az veya daha fazla olmalıdır.
- İsimler, çağrıcı bir Roblox çekirdek kodu olmadığı sürece RBX ile başlatılamaz, (Roblox için ayırılmış).
Bir özniteliği desteklenmeyen bir yazayarlamaya çalışırken bir hata atılacaktır.
Ayrıca bakın
- Instance:GetAttribute() verilen öznitelik adına atanmış değeri döndüren, ki bu değer verilen öznitelik adına atanmış değerdir.
- Instance:GetAttributes() , her bir durum özniteliği için bir anahtar değer çiftleri sözlüğü döndüren
Parametreler
Özniteliğin adı ayarlanıyor.
Belirtilen özniteliği ayarlamak için değer.
Dönüşler
WaitForChild
Verilen adla çocuğunu Instance ile döndürür.Çocuk mevcut değilse, mevcut iş parçasına kadar mevcut iş parçasını verecektir.timeOut parametresi belirtilirse, bu yöntem belirtilen saniye sayısından sonra sona erer ve nil döndürür.
Birincil Kullanım
WaitForChild() , bir LocalScript 'de müşteri tarafından çalıştırılan kod üzerinde çalışırken son derece önemlidir.Roblox motoru, nesnelerin sunucudan müşteriye yeniden yazıldığı süre veya sırayı garanti etmez.Ayrıca, bir deneyimin seti true olarak ayarlanmışsa, oyuncunun karakterinden çok uzakta olan örnekleri, potansiyel olarak klientte mevcut olmayan nesneleri indeksleme sırasında kırılmasına neden olabilir, böylece klientte henüz mevcut olmayan kodlar kırılabilir.
Notlar
- Bu işlev, çağrı yapıldığında verilen adı taşıyan bir çocuk mevcut olmadığında vermez.
- Instance:FindFirstChild() varsayılan olarak varsayılan nesneler için WaitForChild() daha verimli bir alternatiftir.
- Bu yönteme bir çağrı dönmeden 5 saniye aşarsa ve hiçbir timeOut parametresi belirtilmezse, işlemci sonsuza dek üretebileceği çıkıya bir uyarı basılır.
Parametreler
Arayılacak Instance.Name .
Opsiyonel bir süre sınırı parametresi.
Dönüşler
Kod Örnekleri
The following code waits for an instance named "Part" to be added to Workspace.
local part = workspace:WaitForChild("Part")
print(part.Name .. " has been added to the Workspace")
Etkinlikler
AncestryChanged
Nesnenin Instance.Parent özelliği veya atalarından biri değiştiğinde ateş eder.
Bu olay iki parametre içerir: gerçekten değiştirilen 'in referansını içerir, while bu durumyeni 'ine işaret eder.
Bu etkinliği kullanarak, Stüdyo'daki bir instansın silinmesini izleyebilirsiniz, örneğin Explorer'da manuel olarak veya bir eklenti aracılığıyla.Bir örnek Instance:Destroy() kullanarak yok edildiğinde tespit etmeniz gerekiyorsa, bunun yerine Instance.Destroying etkinliğini kullanın.
Parametreler
Değiştirilen Instance 'nin Instance.Parent 'si değiştirildi.
Değiştirilen Instance.Parent ın Instance sahibi yeni Instance.Parent oldu.
Kod Örnekleri
Demonstrates detecting changes to an instance's ancestry by connecting to the Instance.AncestryChanged event.
The ChangingPart's Parent is set to different values overtime. The parent of the part is the part's ancestor, so the Instance.AncestryChanged event will fire whenever it changes.
local Workspace = game:GetService("Workspace")
local redPart = script.Parent.RedPart
local bluePart = script.Parent.BluePart
local changingPart = script.Parent.ChangingPart
-- Change the color of changingPart based on it's Parent
local function onAncestryChanged(part: Part, parent: Instance)
if parent == redPart then
changingPart.Color = Color3.new(1, 0, 0)
elseif parent == bluePart then
changingPart.Color = Color3.new(0, 0, 1)
else
changingPart.Color = Color3.new(1, 1, 1)
end
print(`{part.Name} is now parented to {parent.Name}`)
end
changingPart.AncestryChanged:Connect(onAncestryChanged)
-- Set changingPart's Parent property to different instances over time
while true do
task.wait(2)
changingPart.Parent = redPart
task.wait(2)
changingPart.Parent = bluePart
task.wait(2)
changingPart.Parent = Workspace
end
AttributeChanged
Bu olay, bir özniteliğin durumüzerinde değiştirildiğinde her zaman ateşlenir, bir öznitelik nil olarak ayarlandığında dahil.Değiştirilen özniteliğin adı bağlı işleve geçirilir.
Örneğin, aşağıdaki kod parçası kodu, bir parçanın özelliklerinden herhangi birinin değiştiğinde herhangi bir zamanda attributeChanged() fonksiyonunu ateşlemek için bağlar:
local Workspace = game:GetService("Workspace")
local part = Workspace.Part
local function attributeChanged(attributeName)
print(attributeName, "changed")
end
part.AttributeChanged:Connect(attributeChanged)
Ayrıca bakın Instance:GetAttributeChangedSignal() özel bir veri değiştiğinde ateşleyen bir olayı döndüren, belirli bir öznitelik değiştiğinde.
Parametreler
Değiştirilen özniteliğin adı.
ChildAdded
Bir nesne buna ebeveyn atandıktan sonra yangınlar Instance .
Not, bu işlevi sunucu tarafından oluşturulan nesneleri tespit etmek için bir istemci üzerinde kullanırken, bu nesnenin soyundakileri indeksleme sırasında Instance:WaitForChild() kullanmak gereklidir.Bunun nedeni, nesne ve onun soyundakilerinin aynı anda sunucudan müşteriye yeniden yazılmayacağı garantisi verilmediğidir.Örneğin:
local Workspace = game:GetService("Workspace")
Workspace.ChildAdded:Connect(function(child)
-- Use WaitForChild() since descendants may not have replicated yet
local head = child:WaitForChild("Head")
end)
Not, bu işlev yalnızca Instance 'nin acil çocukları için çalışır. Tüm torunları yakalayan bir işlev için Instance.DescendantAdded kullanın.
Ayrıca bakın Instance.ChildRemoved .
Parametreler
Kod Örnekleri
This snippet prints the names of objects as they are added to the Workspace:
local function onChildAdded(instance)
print(instance.Name .. " added to the workspace")
end
workspace.ChildAdded:Connect(onChildAdded)
local part = Instance.new("Part")
part.Parent = workspace --> Part added to the Workspace
ChildRemoved
Bir çocuk bu Instance 'dan kaldırıldıktan sonra yangınlar çıkar.
Kaldırılmış, bir nesnenin ebeveyninin bu Instance 'dan başka bir şeye değiştirildiğini ifade eder Instance.Not, bu etkinlik ayrıca bir çocuk yok edildiğinde de ateşlenecektir (kullanarak Instance:Destroy() ), çünkü yok etme işlevi bir nesnenin ebeveynini nil olarak ayarlar.
Bu işlev yalnızca Instance 'nin acil çocukları için çalışır. Tüm torunları yakalayan bir işlev için Instance.DescendantRemoving kullanın.
Ayrıca bakın Instance.ChildAdded .
Parametreler
Kod Örnekleri
This snippet prints the names of objects as they are removed from the Workspace:
local function onChildRemoved(instance)
print(instance.Name .. " removed from the workspace")
end
workspace.ChildRemoved:Connect(onChildRemoved)
local part = Instance.new("Part")
part.Parent = workspace
task.wait(2)
part:Destroy()
DescendantAdded
Bu olay, bir alt seviye Instance eklendikten sonra ateşlenir.
Her bir torun için ateşlendiğinde, bir nesneyi Instance ebeveynleştirmek, bu nesne ve tüm torunları için ayrı ayrı olayı ateşleyecektir.
Sadece doğrudan çocukları ile ilgileniyorsanız, bunun yerine kullanın.
Ayrıca bakın Instance.DescendantRemoving .
Parametreler
Kod Örnekleri
This following example will print the name of any object that is added to the Workspace:
local function onDescendantAdded(descendant)
print(descendant)
end
workspace.DescendantAdded:Connect(onDescendantAdded)
local part = Instance.new("Part")
part.Parent = workspace
DescendantRemoving
Bu olay, hemen önce ebeveyn Instance değişiklikleri yapılır, böylece bir mirasçı örneği artık bir mirasçı olmayacaktır. bir durumsini değiştirir, bu nedenle ebeveynin bir altında bu yöntemi çağırmak, bu olayın ateşlenmesine neden olacaktır.
Bu olay, soyundaki çıkarmanın öncesinde ateşlenir , bu nedenle soyunun ebeveyni bu olayın ateşlenmesi sırasında değiştirilmez.Eğer torun da ebeveynin doğrudan bir çocuğuysa, bu olay önce ateşlenecektir.
Bir torunun çocukları varsa, bu olay önce torunla birlikte ateşlenir, ardından torunları.
Uyarı
Bu olay, kaldırılan alt nesne ile ateşlenir.Vatandasının Parent'sini başka bir şeye ayarmaya çalışmak başarısız olacaktır.Aşağıda bunu gösteren bir örnek var:
local Workspace = game:GetService("Workspace")
Workspace.DescendantRemoving:Connect(function(descendant)
-- Do not manipulate the parent of the descendant in this function!
-- This event fires BECAUSE the parent was manipulated, and the change hasn't happened yet
-- Therefore, it is problematic to change the parent like this:
descendant.Parent = game
end)
local part = Instance.new("Part")
part.Parent = Workspace
part.Parent = nil
Ayrıca bakın DescendantAdded .
Parametreler
Kod Örnekleri
The following example prints the name of any descendant as it is being removed from the Workspace:
workspace.DescendantRemoving:Connect(function(descendant)
print(descendant.Name .. " is currently parented to " .. tostring(descendant.Parent))
end)
local part = Instance.new("Part")
part.Parent = workspace
part.Parent = nil
--> Part is currently parented to Workspace
print(part.Parent)
--> nil
Destroying
Bağlı bir işlev hala kullanıyorken Instance bellekten asla silinmeyecektir.Ancak, eğer işlev herhangi bir noktada verirse, Instance ve onun soyundakiler ebeveynliğe alınacaktır: nil .
Workspace.SignalBehavior özelliği Enum.SignalBehavior.Immediate olarak ayarlanırsa, bu olay Instance veya bir atasının Instance:Destroy() ile yok edilmesinden hemen önce ateşlenir.
Workspace.SignalBehavior özelliği Enum.SignalBehavior.Deferred olarak ayarlanırsa, bu olay bir sonraki yeniden başlama noktasında ateşlenir, ki bu Instance veya atalarından biri ile Instance:Destroy() yok edilir.
Deferred davranışıyla, bir senaryoyu kendi Instance.Destroying etkinliğine bağlamak sorunludur, çünkü senaryo geri çağrılmadan önce yok edilecektir (yani çalışmayacaktır).
Studio'da bir Instance ı silerken, manuel olarak Gezgini veya bir eklenti aracılığıyla silmek gibi, Instance yok edilmez.Bunun yerine, ebeveyn nil olarak ayarlanır ve bunu Instance.AncestryChanged ile izleyebilirsiniz.
Kod Örnekleri
This sample demonstrates how, when using Immediate signal behavior, an Instance being destroyed remains in place until the connected function yields.
local part = Instance.new("Part", workspace)
local function onPartDestroying()
print("Before yielding:", part:GetFullName(), #part:GetChildren())
task.wait()
print("After yielding:", part:GetFullName(), #part:GetChildren())
end
part.Destroying:Connect(onPartDestroying)
part:Destroy()
This sample demonstrates how, when using Deferred signal behavior, an Instance is destroyed before the signal fires.
local part = Instance.new("Part", workspace)
local function onPartDestroying()
print("In signal:", part:GetFullName(), #part:GetChildren())
end
part.Destroying:Connect(onPartDestroying)
print("Before destroying:", part:GetFullName(), #part:GetChildren())
part:Destroy()
print("After destroying:", part:GetFullName(), #part:GetChildren())