CollectionService

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
Hizmet

CollectionService grupları yönetir (koleksiyonlar) instansların etiketleriyle. Etiketler, sunucudan kliente kopyalanan yerleri yeniden oluşturan yerlerin uygulanan dizgileridir. Ayrıca, yerler kaydedildiğinde seri hale getirilir.

Class.CollectionService 'in ana kullanımı, davranışlarını genişletmek için kullanabileceğiniz özel etiketlerle instanslar oluşturmaktır. Eğer aynı kodu birçok farklı nesneye eklediğinizde, belki de CollectionService kullanan bir kod daha iyi olur.

Etiketler bu durumyöntemleri aracılığıyla eklenebilir veya kaldırılabilir, takip etmek için AddTag() veya RemoveTag() . Onlar ayrıca Studio'da Etiketler bölümünden doğrudan yönet

Kopyalama

Etiketler çoğaldığında, etiketlerin aynı anda yeniden kopyalanması . Bu nedenle, eğer bir sunucukullanc

Özet

Yöntemler

Etkinlikler

Özellikler

Yöntemler

AddTag

void

AddTag bir etiketi bir Instance 'a uygulayacak, etiket zaten etikete uygulanmışsa hiçbir şey yapmaz. Bir etiketi başarıyla eklemek bir CollectionService:GetInstanceAddedSignal() ile verilen etikete başarıyla eklenen bir sinyal başlatacaktır.

Uyarı:: Bir durumetiketlemek için, bazı kaynakların etiketin işlevini sağlamak için kullanıldığı yaygındır, örneğin etkinleştirme olay bağlantıları veya tabl

Parametreler

instance: Instance
tag: string

Dönüşler

void

GetAllTags

Paralel yaz

Dönüşler

GetInstanceAddedSignal

GetInstanceAdded bir etiket (bir dizi) alır ve iki şart altında ateşlenen bir sinyali döndürür:

Aynı etiketle bu yönteme bağlı kalan sonraki çağrılar aynı sinyal objesini iade eder. Ayrıca, CollectionService:GetTagged() çağırmak da etkinleştirilmiş bir etikete sahip olan bir liste oluşturur (böylece etkinleştirilmiş etiketin etkinleştirilmesi durumunda etkinleştirilmiş etiketin etkinleştirilmesi dur

Ayrıca bakınız CollectionService:GetInstanceRemovedSignal(), bu da benzer koşullar altında başlayan bir etkinliği döndürür.

Parametreler

tag: string

İzleyeceğin etiket.


Dönüşler

Etkinleştirici, etiketi bir durumeklediğinizde çalıştırılan bir olay.

Kod Örnekleri

Deadly Bricks using CollectionService

local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local human = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if human then
human.Health = 0
end
end
-- Save the connections so they can be disconnected when the tag is removed
-- This table maps BaseParts with the tag to their Touched connections
local connections = {}
local function onInstanceAdded(object)
-- Remember that any tag can be applied to any object, so there's no
-- guarantee that the object with this tag is a BasePart.
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- If we made a connection on this object, disconnect it (prevent memory leaks)
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Listen for this tag being applied to objects
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Also detect any objects that already have the tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
end

GetInstanceRemovedSignal

GetInstanceRemoved'a bir etiket verilir (bir dizi) ve iki şart altında ateşlenen bir sinyali döndürür:

Aynı etiketle bu yönteme bağlı kalan sonraki çağrılar aynı sinyal nesnesini iade eder. Sinyal, bağlantıları bırakma gibi kullanılan kaynakları temizlemeye yararlıdır.

Ayrıca bakınız CollectionService:GetInstanceAddedSignal(), aynı koşullar altında başlayan bir etkinliği döndürür.

Parametreler

tag: string

İzleyeceğin etiket.


Dönüşler

Etkinleştirme etiketini bir durum'tan kaldığında çalışan bir etkinlik.

Kod Örnekleri

Deadly Bricks using CollectionService

local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local human = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if human then
human.Health = 0
end
end
-- Save the connections so they can be disconnected when the tag is removed
-- This table maps BaseParts with the tag to their Touched connections
local connections = {}
local function onInstanceAdded(object)
-- Remember that any tag can be applied to any object, so there's no
-- guarantee that the object with this tag is a BasePart.
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- If we made a connection on this object, disconnect it (prevent memory leaks)
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Listen for this tag being applied to objects
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Also detect any objects that already have the tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
end

GetTagged

Instances
Paralel yaz

GetTagged, DataModel ( game ) ile ilgili bir dizi nesneyi içeren bir matrisi içerir. Bu etiketler, Class.CollectionService:AddTag() ile eklenmiş ve bir etiket k

Etiketli tüm nesneleri tespit etmek istiyorsanız, hem mevcut hem de gelecekteki tüm nesneleri itereceğiniz bu yöntemi kullanın, bir sinyal tarafından iade edilen bağlantı yaparken aynı anda bağlantı yapmak için bir nesneyi bağlantı yapmak için bir nesneyi bağlantı yapmak için bir nesneyi bağlantı yapmak için bir nesneyi bağlantı yapmak için bir nesney

Bu yöntem, döndürülen nesnelerin herhangi bir siparişini garanti etmez. Ayrıca, nesnelerin verilen etikete sahip olabileceği olasılığı vardır, ancak bir Class.DataModel olarak yok olmaz, yani onun ebeveyni nul olabilir. Bu yöntem, bu nesneleri döndürmez.

Parametreler

tag: string

Aranacak etiket.


Dönüşler

Instances

Etiketle tüm instansların bir matrisi.

Kod Örnekleri

Deadly Bricks using CollectionService

local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local human = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if human then
human.Health = 0
end
end
-- Save the connections so they can be disconnected when the tag is removed
-- This table maps BaseParts with the tag to their Touched connections
local connections = {}
local function onInstanceAdded(object)
-- Remember that any tag can be applied to any object, so there's no
-- guarantee that the object with this tag is a BasePart.
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- If we made a connection on this object, disconnect it (prevent memory leaks)
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Listen for this tag being applied to objects
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Also detect any objects that already have the tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
end

GetTags

Paralel yaz

GetTags bir instans verilir ve verilen objeye uygulanan etiketlerin bir listesini döndürür.


local CollectionService = game:GetService("CollectionService")
local object = workspace.Model
local tags = CollectionService:GetTags(object)
print("The object " .. object:GetFullName() .. " has tags: " .. table.concat(tags, ", "))

Bu yöntem, bir nesnede birden fazla etiketle bir şey yapmak istediğinizde kullanışlıdır. Ancak, bu yöntemi tek bir etiket için kullanmak verimli olmayabilir. Bunun için, CollectionService:HasTag() kullanarak tek bir etiket için kontrol edin.

Parametreler

instance: Instance

Etiketlerinin döndürülmesi gereken nesne.


Dönüşler

Verilen nesneye uygulanan etiketlerin bir matrisi.

Kod Örnekleri

Using Tags and CollectionService

local CollectionService = game:GetService("CollectionService")
local object = script.Parent.Part
-- Add a tag
CollectionService:AddTag(object, "Deadly")
-- Query for a tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " is deadly")
end
-- List tags on an object
local tags = CollectionService:GetTags(object)
print("The object " .. object:GetFullName() .. " has tags: " .. table.concat(tags, ", "))
-- Remove a tag
CollectionService:RemoveTag(object, "Deadly")

HasTag

Paralel yaz

HasTag, belirli bir nesnenin bir etikete sahip olup olmadığını döndürür.

Bu yöntem kullanılarak herhangi bir etiketin CollectionService:GetTags() ile iade edilmesi durumunda kullanıcının kullanımıyla geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğü haliyle geri döndüğ

Parametreler

instance: Instance

Bir etiketin varlığını kontrol etmek için oluşturulan instans.

tag: string

Kontrol etmek için etiket.


Dönüşler

İン스턴스'ın etikete sahip olup olmadığı.

Kod Örnekleri

Using Tags and CollectionService

local CollectionService = game:GetService("CollectionService")
local object = script.Parent.Part
-- Add a tag
CollectionService:AddTag(object, "Deadly")
-- Query for a tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " is deadly")
end
-- List tags on an object
local tags = CollectionService:GetTags(object)
print("The object " .. object:GetFullName() .. " has tags: " .. table.concat(tags, ", "))
-- Remove a tag
CollectionService:RemoveTag(object, "Deadly")

RemoveTag

void

RemoveTag bir etiketi bir instansdan kaldırır. Bu yöntem, etiketin ilk dünyaolmadığı durumda bir hata oluşturmaz. İyi bir şekilde bir etiketi kaldırmak, CollectionService:GetInstanceRemovedSignal() ile verilen etiketle ilgili bir sinyal oluşturur.

Bir etiketi kaldığında, bazı kaynaklar etiketin işlevini vermek için kullanılır, örneğin etkinlik bağlantıları veya tablolar. Hafıza sızdırmalarını önlemek için, bir etiket için artık gerekli olmadığında (disconnect, set to nil, vb.) bu temizlenmelidir.

Parametreler

instance: Instance

Etiketin kaldırılması için gereken istem.

tag: string

İн스턴sten kaldırılacak etiket.


Dönüşler

void

Kod Örnekleri

Using Tags and CollectionService

local CollectionService = game:GetService("CollectionService")
local object = script.Parent.Part
-- Add a tag
CollectionService:AddTag(object, "Deadly")
-- Query for a tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " is deadly")
end
-- List tags on an object
local tags = CollectionService:GetTags(object)
print("The object " .. object:GetFullName() .. " has tags: " .. table.concat(tags, ", "))
-- Remove a tag
CollectionService:RemoveTag(object, "Deadly")

Etkinlikler

TagAdded

Bu etkinlik, bir etiketin bir nesneye eklenmesi ve eklenen etiketin dünyabu nesneyin tek görüntülenmesiyle tetiklenir.

Parametreler

tag: string

TagRemoved

Bu etkinlik, bir etiketin bir nesneden kaldırıldığında ve kaldırılan etiketin dünyaartık kullanılmadığında başlar.

Parametreler

tag: string