Roblox Lua尝试使用Tween将部件移动来回像一个平台

我一直在练习Lua中的Tweening,但我无法理解为什么我无法让我的平台在起始平台和结束平台之间来回移动。首先我会展示代码

--起始变量
本地TweenService = game:GetService("TweenService")
Local group = game.Workspace.MovingPlatform

--组变量
Local部分=组.平台
本地开始=组.检查1
本地完成=组.检查2

--向量
本地目的地=Vector3.new(start.Position.x,start.Position.y,start.Position.z)

--平台Tween信息
本地信息=TweenInfo.new(
    1, --长度(秒)
    Enum.EasingStyle.Linear,
    Enum.EasingDirection.Out,
    -1--重复次数
    true,
    0 --延迟
)

--目的地在哪里
本地目标={
    位置=Vector3.new(destination)
}

--让它走
Local MovePart = TweenService:Create(part, info, Goals)
MovePart:Play()

--调试
Local startPosition = Vector3.new(start.Position.x, start.Position.y, start.Position.z)
Local endPosition = Vector3.new(finish.Position.x, finish.Position.y, finish.Position.z)
Local partPosition = Vector3.new(part.Position.x, part.Position.y, part.Position.z)
While true do
    print("Start Position: "..tostring(startPosition))
    print("Destination: "..tostring(destination))
    print("End Position: "..tostring(endPosition))
    print("Platform Position: "..tostring(partPosition))
    print("--------------")
    wait(3)
end

该平台将移动一次,然后开始出现问题,并随后在任何地方停留在地面上来回移动,但不在正确的位置。我尝试进行调试,以查看是否会更改任何部件的定位,但一切都保持不变。也许我没有正确记录位置,但无论如何,是否有任何提示我可能做错了什么?

点赞
用户11881935
用户11881935

你可以尝试在移动对象时使用CFrame而不是Position。

另外,Part.Position是一个Vector3,因此创建一个新的Vector3并没有意义。

尝试像这样做:

--起始变量
local TweenService = game:GetService("TweenService")
local组=game.Workspace.MovingPlatform

--组变量
本地部分=组.Platform
本地开始=组.Check1
本地结束=组.Check2

--将平台部分设置为从Check1开始
部分.CFrame =开始.CFrame

--平台Tween信息
local info = TweenInfo.new(
    1,- -长度(秒)
    Enum.EasingStyle.Linear,
    Enum.EasingDirection.Out,
    -1,- -重复次数
    真,
    0 - -延迟
)

--目标位置
本地目标={
    CFrame = finish.CFrame -我们希望它在完成部分的位置结束
}

- 让它动起来
local MovePart = TweenService:Create(part,info,goals)
MovePart:Play()
2020-09-15 03:49:30