Klasa silnika
CollectionService
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Podsumowanie
Metody
GetCollection(class: string):Instances |
Zdarzenia
ItemAdded(instance: Instance):RBXScriptSignal |
ItemRemoved(instance: Instance):RBXScriptSignal |
TagAdded(tag: string):RBXScriptSignal |
TagRemoved(tag: string):RBXScriptSignal |
Materiały referencyjne dotyczące interfejsów API
Metody
AddTag
GetCollection
GetInstanceAddedSignal
Parametry
Zwroty
Przykłady kodu
Śmiertelne Klocki z użyciem CollectionService
local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local humanoid = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
-- Zapisz połączenia, aby mogły zostać rozłączone, gdy tag zostanie usunięty
local connections = {}
local function onInstanceAdded(object)
-- Potwierdź, że obiekt z tym tagiem jest BasePart
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- Jeśli na tym obiekcie znajduje się zapisane połączenie, rozłącz/usuń je
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Nasłuchuj, gdy ten tag zostanie przypisany do obiektów
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Również wykryj wszelkie obiekty, które już mają ten tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
endGetInstanceRemovedSignal
Parametry
Zwroty
Przykłady kodu
Śmiertelne Klocki z użyciem CollectionService
local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local humanoid = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
-- Zapisz połączenia, aby mogły zostać rozłączone, gdy tag zostanie usunięty
local connections = {}
local function onInstanceAdded(object)
-- Potwierdź, że obiekt z tym tagiem jest BasePart
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- Jeśli na tym obiekcie znajduje się zapisane połączenie, rozłącz/usuń je
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Nasłuchuj, gdy ten tag zostanie przypisany do obiektów
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Również wykryj wszelkie obiekty, które już mają ten tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
endGetTagged
Parametry
Zwroty
Instances
Przykłady kodu
Śmiertelne Klocki z użyciem CollectionService
local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local humanoid = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
-- Zapisz połączenia, aby mogły zostać rozłączone, gdy tag zostanie usunięty
local connections = {}
local function onInstanceAdded(object)
-- Potwierdź, że obiekt z tym tagiem jest BasePart
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- Jeśli na tym obiekcie znajduje się zapisane połączenie, rozłącz/usuń je
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Nasłuchuj, gdy ten tag zostanie przypisany do obiektów
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Również wykryj wszelkie obiekty, które już mają ten tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
endGetTags
Parametry
Zwroty
Przykłady kodu
Używanie tagów i CollectionService
local CollectionService = game:GetService("CollectionService")
local Workspace = game:GetService("Workspace")
local object = Workspace.Part
-- Dodaj tag
CollectionService:AddTag(object, "Deadly")
-- Zapytaj o tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " jest śmiertelny")
end
-- Wypisz tagi na obiekcie
local tags = CollectionService:GetTags(object)
print("Obiekt " .. object:GetFullName() .. " ma tagi: " .. table.concat(tags, ", "))
-- Usuń tag
CollectionService:RemoveTag(object, "Deadly")HasTag
Zwroty
Przykłady kodu
Używanie tagów i CollectionService
local CollectionService = game:GetService("CollectionService")
local Workspace = game:GetService("Workspace")
local object = Workspace.Part
-- Dodaj tag
CollectionService:AddTag(object, "Deadly")
-- Zapytaj o tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " jest śmiertelny")
end
-- Wypisz tagi na obiekcie
local tags = CollectionService:GetTags(object)
print("Obiekt " .. object:GetFullName() .. " ma tagi: " .. table.concat(tags, ", "))
-- Usuń tag
CollectionService:RemoveTag(object, "Deadly")RemoveTag
Zwroty
()
Przykłady kodu
Używanie tagów i CollectionService
local CollectionService = game:GetService("CollectionService")
local Workspace = game:GetService("Workspace")
local object = Workspace.Part
-- Dodaj tag
CollectionService:AddTag(object, "Deadly")
-- Zapytaj o tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " jest śmiertelny")
end
-- Wypisz tagi na obiekcie
local tags = CollectionService:GetTags(object)
print("Obiekt " .. object:GetFullName() .. " ma tagi: " .. table.concat(tags, ", "))
-- Usuń tag
CollectionService:RemoveTag(object, "Deadly")Zdarzenia
ItemAdded
ItemRemoved