I have a function which is suppose to delete a specific named brick if it touches the brick which contains the script, But it deletes all bricks containing that name in the workspace and I just need the function to delete the one brick that touched it. Please help!
Here's the script:
1 | function onTouched() |
2 | c = game.Workspace:GetChildren() |
3 | for i = 1 , #c do |
4 | if c [ i ] .Name = = "BuildingBrick" then c [ i ] .Parent = nil end -- How can I make it so it will only delete the brick that touched it and not all bricks named "BuildingBrick" |
5 | end |
6 | end |
7 | script.Parent.Touched:connect(onTouched) |
2 things:
Setting parent to nil is the equivelant of the Remove method from alot earlier and it's very unstable. Use :Destroy() for removing things instead.
function onTouched(name) <-- The ''name'' variable for Touched functions is a reference to the part that touched the brick and thus triggered the function. You can also use this to make the code more compact.
1 | function onTouched(hit) |
2 | if hit.Name = = 'BuildingBrick' then |
3 | hit:Destroy() |
4 | end |
5 | end |
6 | script.Parent.Touched:connect(onTouched) |