#lua #roblox
#lua #roblox
Вопрос:
Итак, я создаю скрипт кнопки, при нажатии на который, если выполняется определенное условие, он находит все дочерние элементы другой модели, но когда я нахожу дочерние элементы, он выдает мне сообщение об ошибке «Obj не является допустимым элементом модели», а затем ничего не делает
Вот мой код:
script.Parent.Touched:Connect(function(hit)
if(hit.Name == "RightFoot" or hit.Name == "LeftFoot") then
if(script.Parent.Color == Color3.fromRGB(0, 255, 0)) then
--This line is where im getting problems, when i do this :GetChildren
for _, object in pairs(script.Parent.Parent.Obj:GetChildren()) do
if(object:IsA("BasePart")) then
object.CanCollide = true
object.Transparency = 0
end
end
end
end
end)
Комментарии:
1. попробуйте:waitforchild вместо obj и заключите obj в кавычки, подобные этому: script. Родительский элемент. Родитель: WaitForChild(«Obj»):getChildren()) сделать
Ответ №1:
<something> is not a valid member of model
это ошибка, которую вы получаете при попытке получить доступ к значению, которое не существует. Итак, что бы script.Parent.Parent
это ни было, у него нет дочернего элемента с именем Obj
.
Вместо перехода к объекту с использованием относительного пути, такого как script.Родительский элемент.Родитель, я бы рекомендовал использовать абсолютный путь из надежного места. Что-то вроде …
local button = script.Parent
button.Touched:Connect(function(hit)
if(hit.Name == "RightFoot" or hit.Name == "LeftFoot") then
-- find the model you are looking for
local targetModel = game.workspace:FindFirstChild("Obj", true)
if not targetModel then
warn("could not find Obj in the workspace, try looking somewhere else")
return
end
-- if the button is green, make stuff invisible
if(button.Color == Color3.fromRGB(0, 255, 0)) then
for _, object in pairs(targetModel:GetChildren()) do
if(object:IsA("BasePart")) then
object.CanCollide = true
object.Transparency = 0
end
end
end
end
завершение)
Комментарии:
1. Поиск из Workspace не позволяет вам иметь несколько копий этой модели. Это также может привести к столкновению с именем, контролируемым игроком (персонаж, шляпа или, возможно, что-то с именем, выбранным игроком, например, гуманоид).
2. Это очень хороший момент, я пытался предложить какой-то абсолютный путь, но я думаю, game.workspace слишком общий. Особенно потому, что я также не уверен, где этот сценарий кнопки существует в рабочей области.