Classe motore
CollectionService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Sommario
Metodi
GetCollection(class: string):Instances |
Eventi
ItemAdded(instance: Instance):RBXScriptSignal |
ItemRemoved(instance: Instance):RBXScriptSignal |
TagAdded(tag: string):RBXScriptSignal |
TagRemoved(tag: string):RBXScriptSignal |
Riferimento API
Metodi
AddTag
GetCollection
GetInstanceAddedSignal
Parametri
Restituzioni
Campioni di codice
Mattonelle Mortali utilizzando 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
-- Salva le connessioni in modo che possano essere disconnesse quando il tag viene rimosso
local connections = {}
local function onInstanceAdded(object)
-- Conferma che l'oggetto con questo tag sia un BasePart
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- Se c'è una connessione memorizzata su questo oggetto, disconnetti/rimuovila
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Ascolta per questa tag applicata agli oggetti
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Rileva anche eventuali oggetti che hanno già il tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
endGetInstanceRemovedSignal
Parametri
Restituzioni
Campioni di codice
Mattonelle Mortali utilizzando 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
-- Salva le connessioni in modo che possano essere disconnesse quando il tag viene rimosso
local connections = {}
local function onInstanceAdded(object)
-- Conferma che l'oggetto con questo tag sia un BasePart
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- Se c'è una connessione memorizzata su questo oggetto, disconnetti/rimuovila
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Ascolta per questa tag applicata agli oggetti
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Rileva anche eventuali oggetti che hanno già il tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
endGetTagged
Parametri
Restituzioni
Instances
Campioni di codice
Mattonelle Mortali utilizzando 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
-- Salva le connessioni in modo che possano essere disconnesse quando il tag viene rimosso
local connections = {}
local function onInstanceAdded(object)
-- Conferma che l'oggetto con questo tag sia un BasePart
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- Se c'è una connessione memorizzata su questo oggetto, disconnetti/rimuovila
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Ascolta per questa tag applicata agli oggetti
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Rileva anche eventuali oggetti che hanno già il tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
endGetTags
Parametri
Restituzioni
Campioni di codice
Utilizzo di Tag e CollectionService
local CollectionService = game:GetService("CollectionService")
local Workspace = game:GetService("Workspace")
local object = Workspace.Part
-- Aggiungi un tag
CollectionService:AddTag(object, "Deadly")
-- Interroga un tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " è mortale")
end
-- Elenca i tag su un oggetto
local tags = CollectionService:GetTags(object)
print("L'oggetto " .. object:GetFullName() .. " ha tag: " .. table.concat(tags, ", "))
-- Rimuovi un tag
CollectionService:RemoveTag(object, "Deadly")HasTag
Restituzioni
Campioni di codice
Utilizzo di Tag e CollectionService
local CollectionService = game:GetService("CollectionService")
local Workspace = game:GetService("Workspace")
local object = Workspace.Part
-- Aggiungi un tag
CollectionService:AddTag(object, "Deadly")
-- Interroga un tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " è mortale")
end
-- Elenca i tag su un oggetto
local tags = CollectionService:GetTags(object)
print("L'oggetto " .. object:GetFullName() .. " ha tag: " .. table.concat(tags, ", "))
-- Rimuovi un tag
CollectionService:RemoveTag(object, "Deadly")RemoveTag
Restituzioni
()
Campioni di codice
Utilizzo di Tag e CollectionService
local CollectionService = game:GetService("CollectionService")
local Workspace = game:GetService("Workspace")
local object = Workspace.Part
-- Aggiungi un tag
CollectionService:AddTag(object, "Deadly")
-- Interroga un tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " è mortale")
end
-- Elenca i tag su un oggetto
local tags = CollectionService:GetTags(object)
print("L'oggetto " .. object:GetFullName() .. " ha tag: " .. table.concat(tags, ", "))
-- Rimuovi un tag
CollectionService:RemoveTag(object, "Deadly")Eventi
ItemAdded
ItemRemoved