材质不会更改,但只适用于一个实例

在我的Roblox演示世界中,我正在制作在白天和黑夜中开关的灯光。为此,我有一个点光和一个材质更改为Neon 但当我尝试将其改回Smooth Plastic时,它不起作用

我已经尝试更改它的激活时间、材质、大于/小于符号,我非常新手,所以可能是一个简单的修复

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

while true do
    wait(0.1)
    if game.Lighting:GetMinutesAfterMidnight() > 18 * 60 then (在晚上6点,材质将会改变)
        Lightpart.Material = Enum.Material.Neon
        PointLight.Enable = true
    end
    if game.Lighting:GetMinutesAfterMidnight() > 6 * 60 then  (在早上6点,它应该改变为塑料
        Lightpart.Material = Enum.Material.Plastic
        PointLight.Enable = false
    end
end

因此,当时间达到晚上6点时,材质将变成Neon,但在早上6点时它不会改变回去 我甚至尝试只删除Neon代码,它仍然不起作用,它是相同的代码,只是进行了一点改变

点赞
用户2860267
用户2860267

我认为你的两个 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
        -- 如果在晚上 6 点和早上 6 点之间,打开灯光
        Lightpart.Material = Enum.Material.Neon
        PointLight.Enabled = true
    else
        -- 关闭灯光
        Lightpart.Material = Enum.Material.Plastic
        PointLight.Enabled = false
    end
end
2019-09-03 20:41:41