Hello!
I wrote this bit of code, but I am unsure on whether this will cause a memory leak or not. Is the Destroy method getting rid of everything properly? Is it necessary to add something like self = nil or setmetatable(self, nil)?
Thanks in advance.
local CharacterManager = {}
CharacterManager.__index = CharacterManager
function CharacterManager.new(player)
local self = setmetatable({}, CharacterManager)
local function update()
repeat wait() until (player.Character and player.Character.Parent) or not player.Parent
if player.Parent then
self.character = player.Character
self.humanoid = player.Character:WaitForChild("Humanoid")
-- And so forth..
end
end
update()
self.connection = player.CharacterAdded:Connect(update)
return self
end
function CharacterManager:Destroy()
if self.connection then
self.connection:Disconnect()
self.connection = nil
end
self.character = nil
self.humanoid = nil
end
return CharacterManager