[Beta] 脚本运行环境

[Beta] 脚本运行环境

各位开发者:

大家好!我们很高兴地宣布上线一个新功能,运行环境,这个功能将作为工作室测试版的一部分供大家试用。

什么是运行环境?

运行环境是脚本的一个属性,它可以让您控制脚本在体验中运行的位置。在上线时这个功能会有以下选项,我们可能会在未来逐步进行扩展:

  • 旧版-脚本将在成为特定容器父级时运行。这与你们许多人当前习惯的行为相同,也是此属性的默认行为。

  • 服务器-脚本将在任何地方运行,包括诸如ServerStorage、ReplicatedStorage等服务,但仅在服务器上运行。

  • 客户端-脚本将在任何地方运行,包括ReplicatedStorage等服务,但仅在客户端上运行。

每个选项都有一个独特的图标,以便您在工作室编辑体验时进行区分。

您可以打开工作室,并更改体验中任意脚本的运行环境属性来尝试这个新功能。

image

我们为什么要做这种更新?

以下是我们做出这种更新的几个原因:

  • 客户端和服务器代码可以存在于同一位置,使之更易于共享资源,资产创作者更易于创建“正常工作”的模型。

  • 脚本和本地脚本的行为可以合并到单个场景中,这样我们以后更容易引入新的脚本类型。

如何使用?

如前所述,客户端和服务器代码可以放在同一个位置,这样就可以很容易地创建具有两者的包! 下面是一个使用自拍模式开发者模块的示例。

image

首先,我们将在工作室中启用此功能给您进行试用,同时我们也会确保功能不会存在任何未决问题。欢迎试用并且在这里分享您的体验!一旦我们解决了大家反馈的问题之后,我们将会在整个平台的实时体验中启用这个功能。

文件

常见问题

这个功能会让玩家看到我的脚本来源吗?

不会。我们从未将脚本来源复制到客户端。如果客户端需要运行脚本,我们将会复制其字节码。而且这只会在以下情况发生:

  • 脚本是本地脚本

  • 脚本将其运行环境设置在客户端

  • 脚本是模块脚本

作为附加安全措施,运行环境只能通过工作室中的插件来更改。即使您的体验中存在后门,攻击者也无法利用它来更改运行环境并获取服务器端脚本的字节码。

发布后“旧版”运行环境会发生什么?

旧版只是我们给现有行为取的名字。在我们完全发布此功能后,这种运行环境将继续得到支持,所以,如果您愿意的话您也可以继续使用。

对本地脚本有何影响?

我们计划更新本地脚本的图标,使其不同于我们用于客户端运行环境的图标。除此之外,我们也知道本地脚本对于很多体验来说非常重要,因此我们没有为之计划额外的变更。

运行环境如何与“新手”容器交互?

新手容器通过在本地克隆其内容来工作,因此它会复制其中包含的任何脚本。如果您正在使用新运行环境的其中一种功能,例如客户端或服务器端,则原始脚本及其副本都将运行。因此,您应在这些容器中继续使用旧版运行环境或本地脚本。

如果我不希望脚本在某些地方运行怎么办?

通过使用现有的禁用属性仍然可以禁用脚本。

如果在运行时运行环境发生变化,会出现什么情况?

运行环境只能在工作室中通过属性小工具或使用插件进行更改。如果它的值在脚本运行时发生变化,则现有线程将终止,脚本将开始在新的运行环境中运行。

运行环境如何与数据流协同工作?

脚本从客户端流入和流出时将自动开始和停止执行。

是否有“插件”运行环境的计划?

有些人可能已经注意到运行环境枚举也包含“插件”。后续我们计划为应在插件中运行的脚本添加一个选项。

已知问题

  • 工作室图标不会在资源管理器或脚本编辑器中更新。但这种情况只是暂时的,并且会在发布前解决。

  • 由于我们以不同方式处理复制,您可能会在工作室中体验到不同的行为。我们正在寻找解决方法,使其与运行环境在体验中的工作方式更加一致。

  • 如果在团队创建中使用运行环境,则运行环境不会保存。这种情况也是暂时的,会在发布前解决。

  • 自动完成会显示客户端运行环境的服务器建议。这一问题将在即将发布的版本中解决。

  • 优先复制中的脚本在游戏加载之前不会运行。这种情况也是暂时的,会在发布前解决。

关于我们    加入我们    条款    隐私政策
©2021 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。
粤ICP备20013629号