Материал не меняется, но работает на одном уровне

Итак, в моем демонстрационном мире Roblox я делаю свет, который включается и выключается днем ​​и ночью, для этого у меня есть точечный свет и изменение материала на неон, но когда я пытаюсь изменить его обратно на Гладкий пластик, он не работает. Работа

Я пытался изменить время его активности, материал и символ больше/меньше, я очень новичок в коде, поэтому это может быть простое исправление

local Lightpart = script.Parent
local PointLight = Lightpart.PointLight

while true do
    wait(0.1)
    if game.Lighting:GetMinutesAfterMidnight() > 18 * 60 then (at 6PM the material will change)
        Lightpart.Material = Enum.Material.Neon
        PointLight.Enable = true
    end
    if game.Lighting:GetMinutesAfterMidnight() > 6 * 60 then  (At 6AM it should change to Plastic
        Lightpart.Material = Enum.Material.Plastic
        PointLight.Enable = false
    end
end

Поэтому, когда время достигает 6 часов вечера, материал изменится на Neon, но в 6 часов утра он не изменится обратно. Я даже пытался просто удалить код Neon, и он все равно не работает, это тот же код, только с небольшое изменение


person Tristen Krieg    schedule 31.08.2019    source источник


Ответы (1)


Я думаю, что ваши два оператора if борются друг с другом. Если объединить два утверждения, можно прояснить логику и исправить свет.

local Lightpart = script.Parent
local PointLight = Lightpart.PointLight

while true do
    wait(0.1)
    local mins = game.Lighting:GetMinutesAfterMidnight()
    if mins < (6 * 60) or mins > (18 * 60) then
        -- between 6 PM and 6 AM, turn on the lights
        Lightpart.Material = Enum.Material.Neon
        PointLight.Enabled = true
    else
        -- turn off the lights
        Lightpart.Material = Enum.Material.Plastic
        PointLight.Enabled = false
    end
end
person Kylaaa    schedule 03.09.2019