I have some complex object structures with many child levels and many times I have to create references like:
local parent = MyPart.Parent.Parent.Parent.Parent.Parent.Name
Any way to reduce this?
I have some complex object structures with many child levels and many times I have to create references like:
local parent = MyPart.Parent.Parent.Parent.Parent.Parent.Name
Any way to reduce this?
There is a way, but it can sometimes be not the better way, and that is:
workspace.thing.thing.thing
or something like that, but sometimes it can’t be helpful.
I mean I guess you can do this?
function GetNParents(Part, N)
for i = 1, N, 1 do
Part = Part.Parent
end
return Part
end
local Parent = GetNParents(MyPart, 5).Name
honestly I don’t know how else to respond to this
Could you show how you’re explorer is setup? There is probably an easier way to organize your code.
variables?
local itemOne = this
local itemTwo = this.that
local itemThree = this.that.that
if this isn’t structured, use FindFirstAncestor
or FindFirstAncestorOfClass
.
otherwise
local DeathRobot = {}
DeathRobot.__index = DeathRobot
function DeathRobot.new(model)
local self = setmetatable({}, DeathRobot)
self.Head = model:FindFirstChild("Head")
self.Torso = model.PrimaryPart
self.Name = model.Name
return self
end
local rob = DeathRobot.new(workspace.Model)
print(rob.Head)
I suggest to start from the top (parent instance), not the bottom, unless you have to. or if the parent is very close.