În dezvoltarea jocurilor mari, plasarea aceluiași script în 500 de uși sau 100 de capcane duce la risipă masivă de memorie și mentenanță imposibilă. Serviciul CollectionService rezolvă această problemă printr-o arhitectură modulară bazată pe etichete (Tags): un singur script central ascultă toate obiectele care poartă o anumită etichetă.
Un singur script care controlează toate zonele de lavă din hartă
local CollectionService = game:GetService("CollectionService")
local ETICHETA_LAVA = "ZonaLava"
-- Funcție atașată oricărui obiect care poartă eticheta 'ZonaLava':
local function configureazaPiesaLava(piesa: BasePart)
piesa.Color = Color3.fromRGB(255, 60, 0)
piesa.Material = Enum.Material.Neon
piesa.Touched:Connect(function(obiectLovit)
local umanoid = obiectLovit.Parent:FindFirstChildWhichIsA("Humanoid")
if umanoid then
umanoid.Health = 0 -- Eliminare instantanee la contactul cu lava!
end
end)
end
-- 1. Configurăm toate piesele existente deja în hartă cu această etichetă:
for _, piesaLava in CollectionService:GetTagged(ETICHETA_LAVA) do
if piesaLava:IsA("BasePart") then
configureazaPiesaLava(piesaLava)
end
end
-- 2. Ascultăm dinamic: dacă o piesă nouă primește eticheta în timpul jocului, o configurăm automat:
CollectionService:GetInstanceAddedSignal(ETICHETA_LAVA):Connect(function(instantaNoua)
if instantaNoua:IsA("BasePart") then
configureazaPiesaLava(instantaNoua)
end
end)
Întrebări & Exemple de Cod:
Etichetare și Sisteme Modulare cu CollectionService: HasTag, AddTag și GetTaggedAi o nelămurire despre utilizarea comenzii
Etichetare și Sisteme Modulare cu CollectionService: HasTag, AddTag și GetTaggedsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.