#lua #roblox
#lua #roblox
Вопрос:
Я пытаюсь сделать анимированную открывающуюся / закрывающуюся дверь в Roblox Studio. Сценарий работает, но он вращает шарнир вместо двери. Пожалуйста, скажите мне, что я сделал не так, как мне это исправить?
local tween = game:GetService("TweenService")
local Center = script.Parent.Center
local Door = "Closed"
local CF = Instance.new("CFrameValue")
CF.Value = Center.CFrame
CF.Changed:Connect(function()
Center.CFrame = CF.Value
end)
script.Parent.Door.ClickDetector.MouseClick:Connect(function()
if Door == "closed" then
tween:Create(CF, TweenInfo.new(1), {Value = Center .CFrame * CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))}):play()
Door = "open"
else
tween:Create(CF, TweenInfo.new(1), {Value = Center .CFrame * CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))}):play()
Door = "closed"
end
end)
Комментарии:
1. Официальные форумы разработчиков Roblox могут помочь вам с ответом, однако иногда для получения одобрения требуется много чтения.
2. Есть несколько ошибок, которые могут способствовать, например, создание значения CFrameValue и родительское отношение к вашим деталям. Во-первых, все детали уже имеют значение CFrame, поэтому много строк не требуется. Кроме того, компилятор может не интерпретировать пробелы, но
Center .CFrame
это плохое форматирование. Выделение цели и TweenInfo в отдельные переменные поможет нам лучше ее прочитать, а вам упростить отладку.