为什么在ROBLOX Studio中使用TweenService()时我的门表现出意外行为?

所以我正在为ROBLOX构建一个迷宫逃亡游戏,并且我已经开始编写门的脚本,因此我利用了ROBLOX内置的“TweenService()”来完成它。理论上,门应该像在迷宫逃亡中一样滑入墙内。但是这一直在发生,我不知道为什么!它们会旋转进入缝隙而不是滑动。我本来想展示一张图片,但我不能。 | = 墙 V = 门。 应该发生什么 |><| 发生了什么 |^^|

我的代码:

        TweenService = game:GetService(“TweenService”)
    Door = script.Parent.Door2
    Door1 = Door:WaitForChild(“Door1”)
    Door2 = Door:WaitForChild(“Door2”)
    local TweenInformationIn = TweenInfo.new(

        6,
        Enum.EasingStyle.Sine,
        Enum.EasingDirection.In,
        0false0local Door1Close = {CFrame = CFrame.new(1226.993131.187-769.185)}
    local Door2Close = {CFrame = CFrame.new(1226.993131.187-814.271)}
    local Door1Open = {CFrame = CFrame.new(1226.993131.187-749.831)}
    local Door2Open = {CFrame = CFrame.new(1226.993131.187-834.331)}
    local Tween1Open = TweenService:Create(Door1,TweenInformationIn,Door1Open)
    local Tween2Open =  TweenService:Create(Door2,TweenInformationIn,Door2Open)
    local TweenClose =  TweenService:Create(Door1,TweenInformationIn,Door1Close)
    local Tween2Close =  TweenService:Create(Door2,TweenInformationIn,Door2Close)

    Tween1Open:Play()
    Tween2Open:Play()
点赞
用户2860267
用户2860267

你 tween 的代码看起来很好。

可能只是你定义的 CFrames 缺失旋转信息了。 在你的示例中,你所做的 tween 尝试将门 1 移动到 Position (1226.993, 131.187, -769.185)Orientation (0, 0, 0)

你需要检查门的 Orientation 属性,并确保 Orientation 在最终的 CFrames 中得到保留。你可以通过另一个 CFrame 将其旋转应用到位置上。

以下是两个快速的示例:

-- create a door that swings close
local Door1OpenPos  = CFrame.new(0, 5, 10) * CFrame.fromEulerAnglesXYZ(0, 90, 0)
local Door1ClosePos = CFrame.new(0, 5, 15) * CFrame.fromEulerAnglesXYZ(0,  0, 0)

-- create a door that slides close
local Door2OpenPos  = CFrame.new(20, 5, 0) * CFrame.fromEulerAnglesXYZ(0, 90, 0)
local Door2ClosePos = CFrame.new(30, 5, 0) * CFrame.fromEulerAnglesXYZ(0, 90, 0)

你的滑动门需要确保起点和终点的 Orientation 相同。

希望这能帮助你。

2019-04-18 20:35:36