lua - Roblox Studio - 当我尝试出售背包中的“雪”时出现警告/错误
问题描述
如下图所示,当我进入圈子时,我无法卖掉我背包里的东西。我收到此错误/警告,但无法弄清楚问题所在。我发现问题发生在第 5 行:player:WaitForChild
第 5 行的错误/警告:Infinite yield possible on Players.asbjornbonde.PlayerGui:WaitForChild("Stats")
这是我的代码:
script.Parent.Touched:connect(function(Hit)
local player = game.Players:FindFirstChild(Hit.Parent.Name)
if player then
local leaderstats = player:FindFirstChild("leaderstats")
local PlayerGui = player:WaitForChild("PlayerGui"):WaitForChild("Stats").Backpack
if leaderstats and PlayerGui then
local Cash = leaderstats:FindFirstChild("Cash")
local snow = PlayerGui:FindFirstChild("snow")
if Cash and snow then
if snow.Value <= 0 then
else
Cash.Value = Cash.Value + 2 * snow.Value
snow.Value = 0
script.Parent.DigSound:Play()
script.Disabled = true
wait(0.1)
script.Disabled = false
end
end
end
end
end)
我花了很多时间试图解决这个问题,但我真的做不到。我会很感激帮助。
解决方案
Infinite yield possible on
是 Roblox Studio 中的一个警告,这意味着如果它正在等待的对象不存在且从未创建,您的脚本可能会一直停留在该行等待。
由于唯一WaitForChild
导致错误的是两个WaitForChild
' 连接在一起我猜脚本不喜欢你这样做。
第一个解决方案
如果您要将两个WaitForChild
' 拆分为两个不同的变量,它不应该给您错误,但是这会无缘无故地创建另一个变量,所以我会选择第二种解决方案。
第二种解决方案
由于播放器已加载并触摸了该部分,因此可以安全地假设 GUI 已为它们加载,因此如果您仍想检查是否没有获得 a或您可以正常引用它,您可以将其更改WaitForChild
为:FindFirstChild
nil
player.PlayerGui.Stats.Backpack
希望这可以帮助。
推荐阅读
- r - 通过R中的过滤器识别函数输入?
- android - 尝试设置状态时嵌套流生成器未更新
- sql-server - T-SQL 在一列值更改时返回该行
- python-3.x - Pandas 按天滚动时间窗口而不是单个行
- android - 如何在android中为管理员和用户实现自动登录?我的代码崩溃了
- python - 错误 - 回溯(最后一次调用)
- flutter - 在我的 Flutter 项目中安装 shared_preferences 时出现此错误
- variables - 在 YAML 文件中使用变量进行数学运算
- c# - 如何将可序列化的 HashSet 添加到 Unity/C#?
- ubuntu - 使用 Anaconda-Navigator 时权限被拒绝