电梯是用户可以操作的平台,以便从体验的一个部分移动到另一个部分。当您希望允许用户在您创建的世界中到达新区域时,这种设备非常有用。在本指南中,您可以快速创建自己的电梯,当用户通过接近提示与其交互时可以向上和向下升降。
在下面的方法中创建电梯时,请按照每个部分的说明了解如何:
- 使用基本部件,创建一个供用户站立的平台和一个平台可以遵循的轨道,以向上和向下移动。
- 配置一个 PrismaticConstraint 来驱动平台的运动。
- 创建一个 ProximityPrompt,供用户交互以启动平台的运动。
- 创建一个 Script 来连接电梯的所有组件并使平台能够沿轨道移动。
创建平台和轨道
Part 是 Roblox 的主要构建模块,您可以移动、调整大小、旋转和自定义以改变其外观,例如颜色和材质。使用基本部件来创建电梯的基础是有用的,因为电梯的平台和轨道只需要基本形状。
要创建电梯的平台和轨道:
导航到 Studio 的 Home 或 Model 选项卡工具栏。
单击 Part 下的下拉箭头,并选择 Block。一个块部件在工作区中显示,正要成为用户上下电梯的平台。
在 Explorer 窗口中,选择块,然后在 Properties 窗口中,
- 将 Name 设置为 Platform。
- 将 Size 设置为 [8,1,4]。
在 Explorer 窗口中,选择平台,然后按 CtrlD (⌘D) 复制该部件。这个复制的部件即将成为平台用于上下移动的轨道。
在工具栏中,选择 Move 工具,然后使用一个轴箭头将复制的部件拉离原始位置,这样每个对象之间就有了小间隙。
在 Properties 窗口中,
- 将 Name 设置为 Track。
- 在 Size 属性中,将 Y 轴设置为 20 studs 高。
- 启用 Anchored 属性。
在 Explorer 窗口中,选择这两个部件,然后按 CtrlG (⌘G) 进行分组。
将模型重命名为 Elevator。


在视口中,模型显示为两个单独的对象。在 Explorer 窗口中,模型包含单独的平台和轨道对象。
配置 PrismaticConstraint
现在您有两个部件构成电梯的基础,您可以创建 PrismaticConstraint,对齐相关联的附件,以便平台沿理想路径移动,并设置约束的值,使平台能够上下移动轨道。
创建 PrismaticConstraint 和附件
PrismaticConstraint 在两个 Attachments 之间创建一个刚性连接,允许附件在一个轴上滑动而不旋转。这种类型的 约束 适用于电梯,因为它保持平台在单一方向上,同时仍能向上和向下移动。
要创建 PrismaticConstraint 和其附件:
在 Explorer 窗口中,将 PrismaticConstraint 插入 Track。
- 悬停在 Track 上并单击 ⊕ 按钮。将显示一个上下文菜单。
- 从菜单中插入 PrismaticConstraint。
将一个附件插入 Track 和 Platform。
悬停在 Track 上并单击 ⊕ 按钮。将显示一个上下文菜单。
从菜单中插入 Attachment。
对 Platform 重复此过程。
分别将两个附件重命名为 TrackAttachment 和 PlatformAttachment。

选择 PrismaticConstraint。
在 Properties 窗口中,将附件分配给 PrismaticConstraint。
选择 PrismaticConstraint.Attachment0 属性。您的光标会发生变化。
在 Explorer 窗口中,选择 TrackAttachment。
选择 PrismaticConstraint.Attachment1 属性。您的光标会发生变化。
在 Explorer 窗口中,选择 PlatformAttachment。

对齐附件
如果您将两个附件保持在其父部件中心的默认位置,附件将尝试将每个部件拉入彼此内部,从而导致两个部件的物理碰撞,使电梯无法正常工作。为了避免这种情况,您必须将附件移动到其父部件的外部,以便平台可以自由地在轨道外部的无障碍空间内移动,然后沿其 X 和 Z 轴对齐,以便平台仅在 Y 轴上上下移动。
在您开始重新定位和对齐附件之前,请确保您能够通过在 Studio 的 View 菜单中启用 Show Constraint Details 来查看它们。
要对齐约束的附件:
在工具栏中,选择 Rotate 工具并旋转 TrackAttachment 和 PlatformAttachment,使每个附件的黄色箭头指向 Y 轴的上方。

选择 Move 工具并重新定位附件点,使它们都位于父部件的外部并在其 X 和 Z 轴上对齐。

设置 PrismaticConstraint 值
现在您已经有了 PrismaticConstraint 并已对齐其相关的 Attachments,是时候设置约束的值,以便 Script 可以用来使平台在与轨道底部和顶部相关的设置上升和下降。在轨道的中间位置有一个 TrackAttachment 距离装置的上下端都相隔 10 studs。由于轨道长 20 studs,因此约束的下限和上限必须分别为 -10 和 10。


要为约束设置值以使电梯在设定的运动范围内移动:
在 Explorer 窗口中,选择 PrismaticConstraint。
在 Properties 窗口中,导航到 Slider 部分,然后启用设置平台运动范围的限制的能力,使用伺服风格电机。新的属性字段将显示。
- 将 Limits Enabled 设置为 True。
- 将 ActuatorType 设置为 Servo。
导航到 Limits 部分,然后将平台的运动范围设置为距离轨道中间位置上方和下方 10 studs,且在达到上限和下限时没有弹性(反弹)。设置以下属性后,下限和上限可视化辅助线将延长以满足其新值。
- 将 LowerLimit 设置为 -10。
- 将 Restitution 设置为 0。
- 将 UpperLimit 设置为 10。
导航到 Servo 部分,然后确保平台可以承受抵抗物理限制的重量,以便其上下移动时速度适中,并且其初始化位置位于约束下限的底部。
- 将 ServoMaxForce 设置为 10000。
- 将 Speed 设置为 10。
- 将 TargetPosition 设置为 -10。
创建接近提示
ProximityPrompt 是一个鼓励用户交互的对象,以便在他们靠近体验内的对象(如门、开关和按钮)时触发一个动作。该过程使用 接近提示 允许用户在靠近平台时按一个键以激活电梯的移动。
要创建接近提示:
在 Explorer 窗口中,悬停在 Platform 上并单击 ⊕ 按钮。将显示一个上下文菜单。
从菜单中插入 ProximityPrompt。

编写电梯移动脚本
现在您已经准备好电梯的所有元素,是时候创建一个 Script 使所有部分配合在一起并使平台在轨道上上下移动。
要编写电梯的移动脚本:
- 在 Explorer 窗口中,悬停在 Elevator 上并单击 ⊕ 按钮。将显示一个上下文菜单。
- 从菜单中插入 Script。
- 在新脚本中输入以下内容:
local platform = script.Parent.Platform
local prismaticConstraint = script.Parent.Track.PrismaticConstraint
platform.ProximityPrompt.Triggered:Connect(function(player)
print(prismaticConstraint.CurrentPosition)
if prismaticConstraint.CurrentPosition <= -9 then
prismaticConstraint.TargetPosition = 10
elseif prismaticConstraint.CurrentPosition >= 9 then
prismaticConstraint.TargetPosition = -10
end
end)
当您 进行体验测试 并输入电梯的接近提示所需的键时,脚本会运行以检查平台是否距离约束低于或高于 9 studs。如果低于 9 studs 并且用户与接近提示交互,平台就会向上移动,直到达到约束的上限;相反,如果高于 9 studs 并且用户与接近提示交互,则平台将向下移动,直到达到约束的下限。