【发布时间】:2019-05-05 09:54:51
【问题描述】:
脚本应该通过降低透明度来逐渐增加发光效果。一旦对象不再被触摸,它应该逐渐失去发光直到不再发光,方法是将透明度增加到 1。
当我让它在运行时打印数值时,我看到数值超过 1 并且似乎以比循环中设置的 .01 更高的间隔计数。它不会逐渐起作用 - 它会在循环运行时突然中断或开启。
我无法弄清楚为什么它会超过 1 或如何将其保持为逐渐增加,即使触摸在达到 100 次循环迭代之前结束。
这是脚本:
local glow = script.Parent.orb
glow1 = 1
-- turn on when touched
glow.Touched:connect(function(obj)
if obj.Parent:FindFirstChild("Humanoid") then
for i = 0, 1, .01 do
glow1 = glow1 - .01
glow.ParticleEmitter.Transparency = NumberSequence.new(glow1)
wait(.1)
print(glow1)
end
glow1=0
end
end)
-- turn off when no longer touched
glow.TouchEnded:connect(function(obj)
wait(3)
if obj.Parent:FindFirstChild("Humanoid") then
for i = 0, 1, .01 do
glow1 = glow1 + .01
glow.ParticleEmitter.Transparency = NumberSequence.new(glow1)
wait(.1)
print(glow1)
end
end
end)
【问题讨论】:
-
触摸的条件是什么,所以你可以使用while循环?在此示例中,您的循环都将执行 101 次。此外,从 1 到 100 的循环肯定更好读。
标签: loops lua transparency roblox