

Программирование в roblox studio (lua)
Умнея есть объект (lamp) и кнопка при нажатии на которую изменяется материал, и он действительно изменяется но если я пишу что если он другого материла то изменится на другой. Код какбуто бы не видет else.
local ffg = workspace.lamp
local function hhg ()
ffg.Material = "Neon"
end
local function hgg ()
ffg.Material = "Marble"
end
if ffg.Material ~= "Neon" then
script.Parent.ClickDetector.MouseClick:Connect(hhg)
else
script.Parent.ClickDetector.MouseClick:Connect(hgg)
end
Ваш код выглядит правильным, но проблема может быть в том, что условие if ffg.Material ~= "Neon" проверяется только один раз, когда скрипт запускается. После этого, если материал объекта ffg изменяется, условие не будет проверяться снова.
Чтобы решить эту проблему, вы можете переместить условие внутрь функции обработчика событий MouseClick. Например:
local ffg = workspace.lamp
local function toggleMaterial()
if ffg.Material ~= Enum.Material.Neon then
ffg.Material = Enum.Material.Neon
else
ffg.Material = Enum.Material.Marble
end
end
script.Parent.ClickDetector.MouseClick:Connect(toggleMaterial)
В этом примере, каждый раз, когда пользователь нажимает на кнопку, функция toggleMaterial вызывается и проверяет текущий материал объекта ffg. Если он не равен Neon, то он устанавливается в Neon, иначе он устанавливается в Marble. Таким образом, каждый раз, когда пользователь нажимает на кнопку, материал объекта ffg будет меняться между Neon и Marble.
Не знаю сработает ли но вот что Нейросеть сказал
Проблема в вашем коде возникает из-за способа, которым вы проверяете текущий материал и привязываете функции к событию MouseClick. Ваш код, на самом деле, всегда будет изменять материал на "Neon" вне зависимости от текущего материала объекта "lamp". Это происходит потому, что ваша проверка if всегда вернет true.
Вместо этого вы можете использовать следующий код, чтобы правильно менять материал в зависимости от текущего состояния:
lua
local ffg = workspace.lamp
local function toggleMaterial()
if ffg.Material == "Neon" then
ffg.Material = "Marble"
else
ffg.Material = "Neon"
end
end
script.Parent.ClickDetector.MouseClick:Connect(toggleMaterial)
Этот код определяет функцию toggleMaterial, которая проверяет текущий материал объекта "lamp". Если материал равен "Neon", функция изменяет его на "Marble", и наоборот. Затем эта функция привязывается к событию MouseClick кнопки, чтобы изменять материал каждый раз при нажатии. Этот код будет корректно переключать материал объекта "lamp" между "Neon" и "Marble".
Зачем у тебя локал в функциях? +я тебе объясню ща
Заместо script.Parent.ClickDetector.MouseClick:Connect(hhg) пиши hhg() или hgg()
По вопросам в комменты пиши.