首页 > 解决方案 > 使用 TweenInfo 时显示“TweenInfo.new 第一个参数需要一个时间数字”的错误消息

问题描述

我正在制作补间,并且收到一条错误消息,提示“TweenInfo.new 第一个参数需要一个数字作为时间”,这是怎么回事?

local tweenInfo = TweenInfo.new{
    0.75,
    Enum.EasingStyle.Sine,
    Enum.EasingDirection.Out,
    0,
    false,
    0
}
-- later on when I call it
tweenService:Create(v, tweenInfo, Vector3.new(X,Y,Z)) -- v is an Instance of a Part

请帮我!

标签: luaroblox

解决方案


您遇到了 lua 语言的一个有趣的怪癖。事实证明,当只提供一个参数时,括号在函数调用中是可选的。

所以你的代码中实际发生的是......

local tweenInfo = TweenInfo.new(
    { table of arguments }, -- time
    nil, -- easing style
    nil, -- easing direction
    nil, -- repeat count
    nil, -- reverses
    nil -- delay
 )

TweenInfo 构造函数需要一个数字作为第一个参数,而是获取一个值表。

所以要解决这个问题,只需用括号替换大括号:

local tweenInfo = TweenInfo.new(
    0.75,
    Enum.EasingStyle.Sine,
    Enum.EasingDirection.Out,
    0,
    false,
    0
)

--编辑:根据评论,. 中也有语法错误TweenService:Create()。如果其他人也需要它,我已经在这里发布了修复程序。

tweenService:Create(v, tweenInfo, {
    Position = Vector3.new(X,Y,Z),
})

推荐阅读