Instance

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
Gezilemez

Instans, Roblox sınıf hiyerarının bir parçası olabilecek DataModel ağacının tüm sınıfları için temel sınıfıdır. Doğrudan Instans nesneleri oluşturulmaz.

İンスタンス'ın kod yoluyla nesneleri oluşturmak için kullandığı özel bir işlevi vardır. Bu işlev kod adını bir parçası olarak alır ve oluşturulan nesneyi döndürür.抽象 sınıf ve hizmetler İン스タンス'ın yeni . fonksiyonu ile oluşturulamaz.

Özet

Özellikler

  • Paralel oku

    Class.Instance ve onun yolundaki çizgililer klonlanabilir ve Instance:Clone() kullanılarak kaydedilebilir.

  • Capabilities:SecurityCapabilities
    Roblox Betik Güvenliği
    Paralel oku

    Bu konteyner içindeki kodlar için kullanılabilen yetenek seti.

  • Paralel oku

    Class.Instance ın benzersiz bir tanımlayıcısı.

  • Çoğaltılmamış
    Paralel oku

    Class.Instance 'in hierarchical ebeveynini belirler.

  • Gizli
    Eklenti Güvenliği
    Paralel oku
    Artık Kullanılmayan

    CoreGui nesnelerini korumak için kullanılan artık deprecated bir özellik.

  • Çoğaltılmamış
    Roblox Betik Güvenliği
    Paralel oku

    İン스턴ansı Sandboxed Container olarak döndürür.

  • UniqueId:UniqueId
    Çoğaltılmamış
    Betiklenemez
    Roblox Güvenliği
    Paralel oku

Yöntemler

Etkinlikler

Özellikler

Archivable

Paralel oku

Bu özellik, deneyin yayınlanması veya kaydedilmesindeki istisna, veya Clone() 'in instansın atalarından birinde çağrılması durumunda deneyin ortaya çıkmasını

Bir nesneyi Studio'da Kopyala veya Kopyala / Yapıştır / 2>Yapıştır2> seçeneklerini kullanarak kopyalayabilirsiniz. Ayrıca kopyalanan nesnenin kendi 5> Class.Instance.Archivable|Archivable özelliğini5>


local part = Instance.new("Part")
print(part:Clone()) --> Part
part.Archivable = false
print(part:Clone()) --> nil

Capabilities

SecurityCapabilities
Roblox Betik Güvenliği
Paralel oku

Bu durumdaki kodlar için kullanılabilen yeteneklerin seti. Yeteneklerin etkinleştirilmesi için Instance.Sandboxed özelliği etkinleştirilmelidir.

Bu özellik deneysel bir özellik tarafından kullanılıyor. Ayrıntılar için Kript Yetenekleri sayfasına bakın.

Name

Paralel oku

Class.Instance ın benzersiz bir tanımlayıcısı.

Bu özellik, bir nesneyi tanımlayan bir tanımlayıcıdır. İsimler, her zaman bir nesnenin eşsiz kimliğini tanımlayan bir tanımlayıcı değildir; bir nesnenin birden fazla çocuğu aynı ismi paylaşabilir. İsimler, öğenin yapısının yanı sıra, kodların belirli nesneleri erişebilmesi için izin verilmesiyle 100 karakterden fazla bir boy

Bir nesnenin ismi genellikle aşağıdaki yöntemleri kullanarak nesneye erişmek için veri modeli hiyerarşisini kullanarak nesneye erişmek için kullanılır:


local baseplate = workspace.Baseplate
local baseplate = workspace["Baseplate"]
local baseplate = workspace:FindFirstChild("BasePlate")

Nesne dot operatörü kullanılarak erişilebilir hale getirilmek için, bir nesnenin adı belirli bir sintilde başlamalıdır. Nesne adı bir alt çizgi veya harf ile başlamalıdır. Nesne adının geri kalan kısmı sadece harfler, sayılar ve üstlükler (başka özel karakterler yok) içerebilir. Eğer nesne adı

Aynı ada sahip birden fazla nesne varsa, aynı ismi taşıyan bir nesneyi indekslemek herhangi bir nesneyi Instance:FindFirstChild() ile eşdeğer olarak, ancak istediğiniz nesneyi değil, iade eder. kodaracılığıyla belirli bir nesneye erişilmesi gerekirse, nesnenin eşdeğer adını vermek

Not, durumhierarşisini gösteren tüm bir isim alabilirsiniz kullanarak Instance:GetFullName() .

Parent

Çoğaltılmamış
Paralel oku

Ebeveyn öğesi, Instance 'in yerleşik ebeveyni belirler. Aşağıdaki terminoloji, bu öğün nasıl ayarlanacağı hakkında konuşulduğunda genellikle kullanılır:

  • Bir nesne, onun Ebeveyni belirlenmişken, bir başka nesneyi çocuk ( ebeveyni belirlenmişken başka bir ebeveyn) olarak kullanır.
  • Bir Class.Instance 의 çıplak torunları, o nesnenin çocuklarına ek olarak, çocukların çocuklarını da içerir.
  • Bir Class.Instance 'in ataları, bir Instance 'in soyundan olan tüm nesnelerdir.

Bu özellikten diğer API üyelerinin isimlerini aldığını birçok başka API üyesi, örneğin GetChildren ve FindFirstChild alır.

Class.Instance:Remove()|Remove işlevi, bu özelliği nil olarak ayarlar. Destroy çağrısı, ebeveyn bir Class.Instance ile tüm onun çıkışlarını Instance ayarlar ve ayrıca 1> kilit

Bu özellik ayrıca, bir nesnenin oyunda mevcut olup olmadığını yönetmek için kullanılır. Bir nesnenin ebeveyni DataModel ile bağlantıda ise, oyun içindeki bir başka nes

Yeni oluşturulan nesneler kullanılarak Instance.new() olmayacak bir ebeveyn olmayacak ve genellikle bir ebeveyn ayarlanana kadar görünmez veya işlevsel olmayacak. Bir nesnenin en temel yaratılışı iki adımda oluşur: nesneyi oluştur ve sonra ebeveynini ayarla.


-- Create a part and parent it to the workspace
local part = Instance.new("Part")
part.Parent = workspace
-- Instance new can also take Parent as a second parameter
Instance.new("NumberValue", workspace)

Bir örneği DataModel ın ebeveyn olarak atılırken değiştirilirse, motor gerekirse içeride ekstra iş yapmak zorunda kalabilir (yeniden kopyalama, şekillendirme ve GUI yerleştirme gibi şeyler için). Mümkün olduğunda, bir durumözelliklerini önce yer

Nesne Kopyalama

Sunucunun oluşturduğu bir nesne, yeniden oluşturulan bir nesneye ebeveyn olana kadar kliyentlere kopyalanmayacaktır. Bir nesneyi oluştırırken birçok özellik değiştirilirse, ebeveyni son olarak belirle önerilir. Bu, nesnenin bir kopyasının oluşturulmasını sağlar, böylece birçok özellik değiştiril


local part = Instance.new("Part") -- Burada ikinci parametreyi kullanmayın
part.Anchored = true
part.BrickColor = BrickColor.new("Really red")
-- Potansiyel olarak birçok başka özellik değişikliği buraya buraya gitabilir...
-- Ana Sayfayı Her Zaman Sonra Ayarla!
part.Parent = workspace

Ancak, eğer parçalarınızı Model olarak bir ebeveynlere ayarlarsanız, her bir parçayı bu modelin ebeveyni olarak ayarlamak sorun değildir, çünkü model henüz kopyalanmadığı için her bir parçayı bu model olarak ebeveyn ayarlayabilirsiniz.

RobloxLocked

Gizli
Eklenti Güvenliği
Paralel oku

Bu özellik, CoreGui hizmetindeki nesneleri kullanıcılar tarafından izinsiz bir şekilde değiştirilmiş olarak korumak için kullanıldı. Deprecenmiştir ve hiçbir şey yapmaz.

Sandboxed

Çoğaltılmamış
Roblox Betik Güvenliği
Paralel oku

İн스턴스yu Sandboxed Container olarak döndürür. Sandboxed Containers, belirli bir kontenedör içindeki eylemleri sınırlayan deneysel bir özelliktir.

Daha fazla bilgi için Script Kapabiliteleri sayfasını görün.

UniqueId

UniqueId
Çoğaltılmamış
Betiklenemez
Roblox Güvenliği
Paralel oku

Yöntemler

AddTag

void

Bu yöntem, etiketin zaten uygulandığı durumda etkisi yoktur. Bir etiketi başarıyla eklemek, CollectionService:GetInstanceAddedSignal() ile verilen etikete sahip bir sinyali başlatacaktır.

Bir instansı etiketlemek için, bazı kaynakların etiketinin işlevini sağlamak için kullanıldığı yaygındır. Etiketin işlevini vermek için, örneğin etkinleştirilmiş olay bağ

Parametreler

tag: string

Dönüşler

void

ClearAllChildren

void

Bu işlev, bir durumtüm çocuklarını yok eder.

As Instance:Destroy() ayrıca kullandığı nesnin çocuklarına da adlandırılır, bu işlev tüm soyundaki tüm çocukları yok eder.

ClearAllChildren'ın Alternatifleri

Geliştirici tüm soyundaki herhangi birini yok etmek istemezse, Instance:GetChildren() veya Instance:GetDescendants() ı kullanarak bir nesneyi döndürmelidir ve neyi yok etleyeceğini seçmelidir. Örneğin, aşağıdaki kod örneği tüm parçaları bir nesnede yok edecektir.


for _, instance in object:GetDescendants() do
if instance:IsA("BasePart") then
instance:Destroy()
end
end

Dönüşler

void

Kod Örnekleri

Instance:ClearAllChildren

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

Klon Etme bir instansın ve tüm soyundan bir kopyayı oluşturur, tüm instansların Archivable olmadığını g

Eğer klon bir durumObjectValue.Value gibi bir referans özelliği belirlenmişse, kopyanın özelliğinin değeri orijinalin değerine bağlıdır:

  • Bir referans özelliği, klonlanmış olan bir instansa işaret ediyorsa, kopya kopyaya işaret edecektir.
  • Bir referans özelliği klonlanmamış bir nesneyi işaret ediyorsa, aynı değer kopyada korunur.

Dönüşler

Kod Örnekleri

Cloning an Instance

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

void

Class.Instance.Parent özelliğini nil olarak ayarlar, Instance.Parent özelliğini kilitler, tüm bağlantıları bırakır ve çağırılır Destroy tüm çocuklar üzerinde çağırılır. Bu işlev, artık gerekli olmayan nesneler

İpucu: Bir nesneyi yok etmeden önce, nesneye (veya onun geliştiricilerine) referans eden herhangi bir değişkeni yok edin. Bu, kodunuzun nesneyle 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ı önlemek için bunu yapın:
part = nil

Bu yöntemle bir Instance yok edildiğinde, yeniden kullanılamaz çünkü Instance.Parent özelliği kilitlidir. Geçici olarak bir nesneyi kaldırmak için, Parent yerine sıfırla bırakın. Örneğin:


object.Parent = nil
wait(2)
object.Parent = workspace

Bir nesneyi belirli bir süreden sonra yok etmek için Debris:AddItem() kullanın.


Dönüşler

void

Kod Örnekleri

Instance:Destroy()

local part = script.Parent.Part
part:Destroy()

FindFirstAncestor

Paralel yaz

Bağlantısına eşit olan ilk atalarını Instance olarak iade eder.

Bu işlev yukarı çalışır, yani Instance.Parent'de başlar ve DataModel'e doğru çalışır. Eşleşen atalar bulunmazsa, nil'i iade eder.

Aşağıdaki kod kısmı, 'Car' adındaki objenin ilk atalarını bulur.


local car = object:FindFirstAncestor("Car")

Belirli bir klasanın atalarını bulan çeşitler için, lütfen şu adresleri görün: Instance:FindFirstAncestorOfClass() ve Instance:FindFirstAncestorWhichIsA().

Parametreler

name: string

Ara Instance.Name olarak.


Dönüşler

Class.Instance bulundu.

FindFirstAncestorOfClass

Paralel yaz

Verilen kullanıcının kullanıcı adına eşdeğer olan Instance ile ilgili ilk atalarını döndürür.

Bu işlev yukarı çalışır, yani Instance.Parent'de başlar ve DataModel'e doğru çalışır. Eşleşen atalar bulunmazsa, nil'i iade eder.

Bu işlevin yaygın kullanımı, Model 'in bir BasePart 'e ait olduğunu bulmaktır. Örneğin:


local model = part:FindFirstAncestorOfClass("Model")

Bu işlev, Instance:FindFirstAncestor() ın özelliğini kontrol eder, Object.ClassName değerini değil, Instance.Name . 1> Class.Instance:FindFirstAncestorWhichIsA()1> da mevcut, kullanıcının kalıtırı

Parametreler

className: string

Ara Object.ClassName olarak.


Dönüşler

Class.Instance bulundu.

FindFirstAncestorWhichIsA

Paralel yaz

Class.Instance ın ilk atalarını için Object:IsA() verir ve bu adlandırma için Class.Instance için doğru.

Bu işlev yukarı çalışır, yani Instance.Parent'de başlar ve DataModel'e doğru çalışır. Eşleşen atalar bulunmazsa, nil'i iade eder.

Class.Instance:FindFirstAncestorOfClass() dışında, bu işlev Object:IsA() kullanır, bu da klas atıfına saygı duyar. Örneğin:


print(part:IsA("Part")) --> true
print(part:IsA("BasePart")) --> true
print(part:IsA("Instance")) --> true

Bu nedenle, aşağıdaki kod örneği ilk BasePart atalarını, WedgePart , MeshPart veya 1> Class.Part1> olup olmadığını bile gösterir.


local part = object:FindFirstAncestorWhichIsA("BasePart")

Ayrıca, Instance:FindFirstAncestor() .

Parametreler

className: string

Ara Object.ClassName olarak.


Dönüşler

Class.Instance bulundu.

FindFirstChild

Paralel yaz

Class.Instance ile verilen isimle ilk çocuğunu iade eder,

ya da nil eğer öyle bir çocuk yoksa. Eğer gerekli recursive argumenti doğruysa, bu işlev tüm soyundan arar Instance .

Bir Objeden Geçerli Olup Olmadığını Kontrol Etme

Devam etmeden önce bir nesnenin varlığını doğrulamak için FindFirstChild gerekir. Bir çocuğu isim olarak indekslemeye çalışmak çocuğun mevcut olmadığı durumda bir hata oluşur.


-- Aşağıdaki hata, Parça Çalışma Alanında mevcut değilse:
workspace.Part.Transparency = 0.5

FindFirstChild'ı kullanarak ilk olarak Parça için kontrol et, ardından if-句'i kullanarak ihtiyacı olan kodu çalıştır.


local part = workspace:FindFirstChild("Part")
if part then
part.Transparency = 0.5
end

Bir Özellikle İşaretlenen Çocuğu Bulma

Bazen bir nesnenin Name ı öbür nesnelerin Parent ı ile aynıdır. Dot operatörünü kullanırken, özellikler isim paylaşırsa çocuklar üzerinde özellikler önceliği vardır.

Aşağıdaki örnekte, renk adında bir Folder eklenir bir Part , bu da Part.Color özelliğine sahiptir. 2>Class.Part.Color2> Folder'ın değil, 5>Datatype.Color35> ile ilgilidir.


local part = Instance.new("Part")
local folder = Instance.new("Folder")
folder.Name = "Color"
folder.Parent = part
local c = part.Color --> Bir Renk3
local c2 = part:FindFirstChild("Color") --> The Folder

Bu yol a FindFirstChild() kullanıyor olmanın bir yararı ise, yeni özelliklerin kodunuzda risk oluşturmadığıdır.

Performans Notu

FindFirstChild() dot operatörünü kullanarak yaklaşık 20% daha uzun sürer ve nesne s

Parametreler

name: string

Ara Instance.Name olarak.

recursive: bool

Arama sırası olarak yapılıp yapılmayacağı.

Varsayılan değer: false

Dönüşler

Class.Instance bulundu.

Kod Örnekleri

Instance:FindFirstChild

local found = workspace:FindFirstChild("Brick")
if found then
found.Name = "Foo"
end

FindFirstChildOfClass

Paralel yaz

Verilen kullanıcının Instance ının eşdeğer olduğu ilk çocuğu döndürür.

Eşleşen çocuk bulunmazsa, bu işlev nil'i döndürür.

Class.Instance:FindFirstChildWhichIsA() bu işlev sadece Class.Instance:FindFirstChildWhichIsA() ile eşleşen nesneleri kullanır, klasik mirası görmezden gelir.

Bir çocuğu isim olarak arayan geliştiriciler Instance:FindFirstChild() yerine Class.Instance:FindFirstChild kullanmalıdır.

Parametreler

className: string

Ara Object.ClassName olarak.


Dönüşler

Class.Instance bulundu.

Kod Örnekleri

Instance:FindFirstChildOfClass

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

Paralel yaz

Class.Instance ın ilk çocuğunu döndürür, Object:IsA() verilen kullanıcının isminde gerçekten true değerine sahiptir.

Eşleşen çocuk bulunmazsa, bu işlev nil'i döndürür. Eğer seçimli recursive argüman doğruysa, bu işlev tüm soyundan arar, Instance'nin derhalki çocukları değil.

Class.Instance:FindFirstChildOfClass() dışında, bu işlev Object:IsA() kullanır, bu da klas atıfta saygı gösterir. Örneğin:


print(part:IsA("Part")) --> doğru
print(part:IsA("BasePart")) --> doğru
print(part:IsA("Instance")) --> true

Bu nedenle, aşağıdaki kod örneği ilk BasePart çocuğunu, WedgePart , MeshPart veya 1> Class.Part1> olup olmadığını bilecek şekilde geri dönecektir.


local part = object:FindFirstChildWhichIsA("BasePart")

Bir çocuğu isim olarak arayan geliştiriciler bunun yerine Instance:FindFirstChild() kullanmalıdır.

Parametreler

className: string

Aranacak Object.ClassName olmalıdır.

recursive: bool

Arama sırası olarak yapılıp yapılmayacağı.

Varsayılan değer: false

Dönüşler

Class.Instance bulundu.

FindFirstDescendant

Paralel yaz

Verilen şu Instance.Name ile bululan ilk soyundan döndürür.

Bu yöntem devre dışı ve kullanılamaz. Bir durumilk soyundan bulmak için, recursive yerine Instance:FindFirstChild() parametresini kullanmayı düşünün.

Parametreler

name: string

Arayacağınız Instance.Name aracı.


Dönüşler

Class.Instance bulundu.

GetActor

Paralel yaz

Class.Instance bir Actor ise, Actor kendisi iade edilir. Aksi takdirde, en yakın atancısı 1>Class.Actor1> iade edilir. Eğer atancı yoksa, sonuç 4>nil4> olur. Eğer atancı bir 7>Class.Actor</


Dönüşler

Class.Actor bulundu.

GetAttribute

Variant
Paralel yaz

Bu yöntem, belirlenen öz isme atanan değerini döndürür. Eğer bir öz atanmadıysa, nil döndürülür.

Örneğin, aşağıdaki kod snippetsi ayarlar ve sonra InitialPosition özelliğinin değerini alır:


local part = workspace.Part
part:SetAttribute("InitialPosition", part.Position)
local initialPosition = instance:GetAttribute("InitialPosition")
print(initialPosition)

Ayrıca bakın

Parametreler

attribute: string

Geri alınan özelliğin adı.


Dönüşler

Variant

Verilen özniteliğe atanan değer. Eğer bir öznitelik atanmadıysa, nil döndürülür.

GetAttributeChangedSignal

Bu işlev, Changed etkinliği gibi davranır, ancak sadece belirli verilen öznitelik değiştirildiğinde başlar; etkili olarak, bunlar öznitelikler için benzerdir.

Bu yöntemi, özellik ismini kontrol eden bir işlevle Changed ile kullanmak genellikle iyidir. Aynı özellik adına sahip olan aynı öğretimdeki bir sonraki çağrı bu yönteme döndürür.

Aşağıdaki kod örneği, parçanın İlkPozisyonu özelliğinin değişmesi durumunda işlevi attributeChanged() iletir:


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 özellik değiştirildiğinde başlatılır.

Parametreler

attribute: string

Değiştirme sinyali için belirlenen özelliklerin adı.


Dönüşler

Verilen özellik değiştirildiğinde çalışan bir etkinlik.

GetAttributes

Paralel yaz

Bu yöntem, anahtarın özelliği olduğu her özellik için bir anahtar değeri çifti dictionary'sini 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 örneği bir durumözelliklerini ve değerlerini gösterir:


local part = workspace.Part
part:SetAttribute("InitialPosition", part.Position)
part:SetAttribute("CanUse", true)
for name, value in part:GetAttributes() do
print(name .. " = " .. value)
end

Ayrıca bakınız Instance:GetAttribute() , verilen öznitelik adına atanan değerin dönümünü içerir.


Dönüşler

Bir dizin string → varyant çiftleri, string'in özellik adı ve variant'in bir nil değeri olmadığından özellikler için dizin.

GetChildren

Instances
Paralel yaz

Tüm durum'ın doğrudan çocuklarını içeren bir matematiksel indeksli tablo (örneğin bir Class.Instance)'yu veya herhangi bir Instance ile eşdeğer olan herhangi bir Class.Instance'yi içeren bir dizge olarak işleyebilir. Matematiksel dizi, herhangi bir Class.Instance ile eşdeğer olana kadar iterebilir:


-- Numerik for- loop örneği
local children = workspace:GetChildren()
for i = 1, #children do
local child = children[i]
print(child.Name .. " is child number " .. i)
end

-- Genel for-Loop örneği
local children = workspace:GetChildren()
for i, child in children do
print(child.Name .. " is child number " .. i)
end

Çocuklar, öğelerinin Parent özelliğine ayarlandığı sırayla sıralanır.

Ayrıca bakın GetDescendants işlevini.


Dönüşler

Instances

durumçocuklarını içeren bir matris.

Kod Örnekleri

Instance:GetChildren

local children = workspace:GetChildren()
for i = 1, #children do
print(i, children[i].Name)
end

GetDebugId

Gezilemez
Eklenti Güvenliği

Roblox'un kullanıcıları tarafından içeride kullanılan gizli kodlanmış bir dizi dönüşür.

Not:

  • Bu öğe koruma altında. Onu bir Script veya LocalScript kullanmaya çalışmak bir hata yaratacaktır
  • Bir debug ID, debug işlemlerinde kullanılan bir kimettir. Bu, bir debugger'ın herhangi bir talimatı okumasına izin verir ve bir uygulamanın işlemlediği herhangi bir yorum okuması gerekirse. Roblox'daki tüm nesneler işlem olarak davranır ve herhangi bir yorum okuması gerekirse.
  • Bu, aynı ismi paylaşan farklı nesneleri birbirinden ayırt etmesi gereken eklentiler için yararlı olabilir (örneğin aynı adı olan nesneler)

Parametreler

scopeLength: number

Menzil uzunluğu.

Varsayılan değer: 4

Dönüşler

Debug ID dizi.

Kod Örnekleri

Instance:GetDebugId

print(workspace:GetDebugId()) --> 39FA_12
print(workspace:GetDebugId(10)) --> 39FA2FEF4D_12
print(workspace:GetDebugId(math.huge)) --> 12

GetDescendants

Paralel yaz

Bu nesne metodu, o objenin tüm soyundan oluşan bir matrisi içerir. Instance:GetChildren() , sadece bir objenin derhal kayıtlarını içeren bir matrisi içerir, bu yüzden bu yöntem her objenin derhal kayıtlarını içerir, her çocuğun çocuğunu ve öylece devam eder.


Dönüşler

durum'ın soyundan oluşan bir matris.

Kod Örnekleri

Instance:GetDescendants

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

Paralel yaz

durumkökeni hakkında bir dizi döndürür. Dizin, Name ile ayrılmış DataModel ile ayrılmıştır. game ( 2>oyun2> ) kabul edilme

Class.DataModel ile ilgili olmayan bir DataModel çağrıldığında, bu işlev tüm atalarının en üstününü dikkate alır, bir Parent olmadan.

Bu işlevleri günlükleme ve depresyon için kullanışlıdır. Geriye alınan metni herhangi bir yararlı işlem için parlamaz; bu işlev herhangi bir simgeyi (veya başka bir sembolü) içindeki dönüştürmez. Diğer bir deyişle, çıktısı genellikle geçerli bir Lua tanımlayıcısı gibi görünse de, garanti edilmez.


Dönüşler

Class.Instance 'in tam adı.

Kod Örnekleri

Instance:GetFullName

-- 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
Instance:GetFullName Lua Implementation

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

GetStyled

Variant

Parametreler

name: string

Dönüşler

Variant

GetTags

Paralel yaz

Bu yöntem, verilen durumuygulanan etiketlerin bir matrisini döndürür, yani teller. Etiketleri Studio'da Özellikler penceresinde veya Class.Instance:AddTag()|AddTag() yükleme sırasında ekleyebilirsiniz.

Bu yöntem, bir seferde bir instansındaki birden fazla etiket için bir şey yapmak istediğinizde yararlıdır. Ancak, tek bir etiket için mevcut olup olmadığını kontrol etmek için bu yöntemi kullanmak için verimli değildir; yerine, HasTag() kullanarak tek bir etiket için mevcut olup olmadığını kontrol edin.


Dönüşler

HasTag

Paralel yaz

Bu yöntem, sağlanan etiketin nesneye eklenmiş olup olmadığına bağlı olarak true döndürür. Etiketleri Studio'da Özellikler penceresine veya Class.Instance:AddTag()|AddTag() iletişim kutusuna ekleyebilirsiniz.

Parametreler

tag: string

Dönüşler

IsAncestorOf

Paralel yaz

Bir Instance ile verilen soyundan bir ataletse geri döndürür.

Bir Instance , bir nesnenin atalarına bakıldığında bir nesnenin Instance.Parent veya onun ebeveynlerinden biri Instance.Parent ile belirlenmiştir.

Ayrıca, Instance:IsDescendantOf() göre.

Parametreler

descendant: Instance

Class.Instance olarak adlandırılır.


Dönüşler

Gerçekleştir ifade edilen kökeneşterinin verilen yokluğunun atasıdır.

Kod Örnekleri

Instance:IsAncestorOf()

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

Paralel yaz

Bir Instance ile verilen atasının bir soyundan olup olmadığını geri döndürür.

Bir Instance bir nesnenin aşçısı olarak kabul edilir, eğer nesnenin ebeveyni veya ebeveyninin ebeveyni olarak ayarlanır.

Not, DataModel bir nesnenin kaldırıldığını kontrol etmek için nil ile aşağıdakişekilde kullanılamaz. Bu, IsDescendantOf'nin nesneyi kaldırıldığını kontrol etmek için nil ile bir parametre kullanılamaz demektir.

Ayrıca, Instance:IsAncestorOf() göz.

Parametreler

ancestor: Instance

Atalet Instance .


Dönüşler

Gerçekleştir ifade edilen atasının bir soyundan Instance ise.

Kod Örnekleri

Instance:IsDescendantOf

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

RemoveTag

void

Bu yöntem bir instansından bir etiketi kaldırır. Etiket olmadığı durumda bir hata oluşturmaz. Bir etiketi başarıyla kaldırmak CollectionService:GetInstanceRemovedSignal() ile verilen etikete başarıyla oluşturulur.

Bir durumetiketlemek, bir etiketiğin işlevselliğini sağlamak için bazı kaynakların kullanıldığı yaygındır, örneğin etkinlik bağlantıları veya tablolar. Hafıza tükelerini önlemek için, bir etiket için artık gerekli olmadığında (bağlantıyı kapat, nil vb.) temizlenmesi iyidir.

Parametreler

tag: string

Dönüşler

void

SetAttribute

void

Bu yöntem, verilen isimle özellik belirlenen değere atar. Eğer verilen değer nil ise, özellik kaldırılır, çünkü nil varsayılır.

Örneğiniz, aşağıdaki kod kesmesi, örneğin İlkPozisyonu özelliğini Vector3.new(0, 10, 0) olarak ayarlar:


local part = workspace.Part
part:SetAttribute("InitialPosition", Vector3.new(0, 10, 0))

Sınırlamalar

İsimlendirme gereksinimleri ve sınırları:

  • İsimler sadece alfanümerik karakterler ve alt çizgi kullanabilir.
  • Boşluk veya benzersiz semboller kullanılamaz.
  • IP'ler 100 karakterden daha kısa olmalıdır.
  • İsimler Roblox çekirdek kripti ile başlamayı 允许 RBX ile başlamayı 允许 etmez.

Bir özelliği desteklenmeyen bir yazayarlamaya çalışırken bir hata oluşur.

Ayrıca bakınız:

Parametreler

attribute: string

Özellik ayarlanan isim.

value: Variant

Belirli özelliklerin belirlenmesi için ayarlanan değer.


Dönüşler

void

WaitForChild

Bekletebilir

Class.Instance ile verilen isimle çocuğunu döndürür. Eğer çocuk mevcut değilse, mevcut threadi gerekir kadar yeniden çalıştırır. timeOut parametresi belirtilmişse, bu yöntem belirlenen sayıda saniye sonra zamanlanır ve nil döndürür.

Prim Kullanımı

WaitForChild() kodun çalıştığı LocalScript üzerindeki kod işlemleri için son derece önemlidir. Roblox motoru,

Notlar

  • Bu işlev çağrılırken verilen ismi alan çocuk varsa üretmez.
  • Instance:FindFirstChild() varsayılan varlıklar için daha verimli bir alternatiftir.
  • Bu yöntem çağrısı 5 saniyeden fazla sürmez ve hiçbir timeOut parametresi belirtilmediğinde, çıktıya bir uyarı yazılır.

Parametreler

childName: string

Ara Instance.Name olarak.

timeOut: number

Opcional bir zamanlayıcı özelliği.


Dönüşler

Class.Instance bulundu.

Kod Örnekleri

Instance:WaitForChild

local part = workspace:WaitForChild("Part")
print(part.Name .. " has been added to the Workspace")

Etkinlikler

AncestryChanged

Class.Instance.Parent öğenin veya atalarından biri değiştirildiğinde ateşlenir.

Bu etkinlik iki parametre içerir, çocuk ve ebeveyn . çocuk , aslında 1> Class.Instance1> ın ebeveyni olarak değiştirildiğini işaret eder. 4> ebeveyn4> , bu durumyeni 7> Class.Instance.

Stüdyo'daki bir instansın silinmesini takip etmek için bu etkinliği kullanabilirsiniz, örneğin Explorer'da manuel silme veya bir eklentiaracılığıyla. Eğer bir instansı Instance:Destroy() ile silmeniz gerekiyorsa, Instance.Destroying etkinliğini kullanın.

Parametreler

child: Instance

Değiştirilen Instance ün Instance.Parent

parent: Instance

Değiştirilen Instance 의 yeni Instance.Parent .


Kod Örnekleri

Instance.AncestryChanged

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 özelliğin nil ile değiştirilmesi durumunda herhangi bir özelliğin değiştirildiğinde başlar. Değiştirilen özelliğin ismi bağlantılı işlevle geçerlidir.

Örneğin, aşağıdaki kod parçanın özelliklerinden biri değiştirildiğinde herhangi biri için attributeChanged() işlevini bağlar:


local part = workspace.Part
local function attributeChanged(attributeName)
print(attributeName, "changed")
end
part.AttributeChanged:Connect(attributeChanged)

Ayrıca bakınız Instance:GetAttributeChangedSignal() , bir belirli özellik atributı değiştirildiğinde çalıştığında bir etkinliği döndürür.

Parametreler

attribute: string

Değiştirilen özelliğin adı.


ChildAdded

Bir nesneye bu Instance e bağlandıktan sonra yanar.

Not, bu işlevi bir istemciyi kullanarak sunucunun oluşturduğu nesneleri tespit etmek için kullanırken, bu nesnelerin aşağıdaki izişlemleri Instance:WaitForChild() kullanmak gerekir. Bunun nedeni, bu nesnelerin aşağıdaki izişlemleri sunucudan istemciye aynı anda yeniden yapılması garanti edilmez. Örneğin:


workspace.ChildAdded:Connect(function(child)
-- need to use WaitForChild as descendants may not have replicated yet
local head = child:WaitForChild("Head")
end)

Not, bu işlev sadece Instance 'in derhalik çocukları için çalışır. Bir çocuğu tüm aşçılarını yakalayan işlev için Instance.DescendantAdded kullanın.

Ayrıca, Instance.ChildRemoved .

Parametreler

child: Instance

Eklenen Instance .


Kod Örnekleri

Instance.ChildAdded

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 çocuğu bu Instance 'den kaldıktan sonra ateş eder.

Kaldırılan, bir nesnenin ebeveyni bu Instance 'den başka bir şey olabilir. Not, bu olay ayrıca bir çocuğu yok eder (kullanando Instance ) olarak bir nesnenin ebeveynini sıfırladığında da ateş eder.

Bu işlev sadece Instance 'nin derhalik çocukları için çalışır. Bir çocuğu tüm soyundan alan bir işlev için Instance.DescendantRemoving kullanın.

Ayrıca bakınız Instance.ChildAdded.

Parametreler

child: Instance

Kaldırılmış olan Instance'i.


Kod Örnekleri

Instance.ChildRemoved

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

DescendantAdded etkinliği, bir atıftan sonra etkinleştirilmiş Instance'a ateşlenir.

DescendantAdded aşağıdaki için her yeni aşçığı için, bir nesneyi Instance'a bağlı olarak etkinleştirirse etkinleştirirse etkinleştirir.

Sadece Instance ile ilgili derin çocukları olan geliştiriciler Instance.ChildAdded yerine bunu kullanmalıdır.

Ayrıca bakın Instance.DescendantRemoving.

Parametreler

descendant: Instance

Eklenen Instance .


Kod Örnekleri

Instance.DescendantAdded

local function onDescendantAdded(descendant)
print(descendant)
end
workspace.DescendantAdded:Connect(onDescendantAdded)
local part = Instance.new("Part")
part.Parent = workspace

DescendantRemoving

Bu etkinlik, ebeveyni derhal önce değiştirerek bir Instance instansının artık bir dizgi olmadığını gösterir. Class.Instance:Destroy()|Destroy() , bir durum2> Class.Instance.Parent|Parent2>

Bu olay etkin olmadan önce yok edilen çırağın kaldırılması, çırağın zamanında ebeveyni değişmez. Eğer çırağın da bir doğrudan çocuğu ise, bu olay 0>Class.Instance.ChildRemoved0> önce0> olacaktır.

Bir soyundaki çocuklar varsa, bu olay kendisi önce başlar, onun soyundaki çocuklarınızı takip eder.

Uyarı

Bu etkinlik, yok edilen aşağıdaki nesne ile başlar. Yok edilen aşağıdaki nesneyi başka bir nesneye ayarlamaya çalışmak başarısız olacaktır. Aşağıdaki örnek, bunu gösteren bir örnektir:


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

descendant: Instance

Kaldırılıyor Instance


Kod Örnekleri

Instance.DescendantRemoving

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

Bir bağlantılı işlev hala kullanılıyorsa, hafızadan hiç silinmez. Ancak, işlev herhangi bir noktada yeniden oluşturulursa, Instance ve onun çıplak ataları Instance olacaktır.

Class.Workspace.SignalBehavior özelliği Enum.SignalBehavior.Immediate veya onun atalarından biri yok edilene kadar derhal başlar. Bu olay, Instance veya onun atalarından biriyle birleştirilirse hemen önce başlar.

Class.Workspace.SignalBehavior özelliği Enum.SignalBehavior.Deferred değerine ayarlandıysa, bu olay sonraki toplama noktasında başlar ve Class.Instance veya onun atalarının Instance ile yok edilmesinden sonra gerçekleşir.

Class.Instance.Destroying etkinliğine bağlanan bir skripti kendi Instance.Destroying etkinliğine bağlamak problematikdir, çünkü çağrılmadan önce skript yok edilir (yani işlevsiz hale getirilir).

Stüdyo'da bir Instance silirken, manuel olarak Explorer'dan veya bir eklenti'den silmek gibi, Class.Instance yok edilmez. Bunun yerine, ebeveyn Instance ile belirlenmiştir, which you can track with 1> Class.Instance.AncestryChanged1>.


Kod Örnekleri

Using the Destroying Event (Immediate signals)

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()
Using the Destroying Event (Deferred signals)

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