gamepadRoblox

如果你曾在 Roblox 上制作过游戏,有一些关键差异你需要了解以在 All Out 上入门!

如果你来自 Roblox Studio + Lua,本页将帮助你将你的思维模型转换为 All Out + CSL(All Out 的脚本语言)。

主要区别(一览)

  • 实体 + 组件(而非 实例 + 服务):世界由 层级中的实体构建,行为来自添加组件(内置或脚本化)。

  • 多人功能是“内置的”:CSL 的设计使大多数游戏玩法代码可以像单人游戏那样编写,引擎会同步相关状态。

  • 编辑器工作流更接近“场景编辑”:你在 检视器中放置实体、调整它们的组件,并通过 预制件.

  • CSL 是静态类型的:它的感觉更接近 Go/Odin 而非 Lua。(见 开始使用 CSL.)


Roblox → All Out 速查表

Roblox 概念
All Out / CSL 概念
备注

Roblox Studio

All Out 编辑器

你从创作者门户启动它(参见 启动编辑器).

Place / Experience

All Out 游戏项目

你的本地项目文件夹包含一个 scripts 目录用于 .csl 文件。

资源管理器 / 工作区

层级

层级显示当前世界/场景中的所有实体。

实例 / 模型 / 零件

实体

“类似文件夹”的组织是通过父子关系对实体进行组织(参见 层级).

属性窗口

检查器

在此编辑实体/组件字段并添加组件。

属性(Attributes)

序列化的组件字段

使用以下方式向编辑器公开字段 @ao_serialize (下方示例)。

模型复用

预制件(Prefabs)

预制件还处于早期阶段,除位置外尚不支持每实例自定义字段(参见 预制件).

ProximityPrompt / ClickDetector

可交互组件

添加 Interactable派生的组件并实现 can_use/on_interact (见 可交互对象).

Touched / Region3 / GetPartsInPart

范围查询(目前)

碰撞进入/退出回调尚未暴露;使用 Scene.get_all_components_in_range (见 导航网格与碰撞).

工具 / 能力 / 移动端按钮

能力(Abilities)

内置的移动/PC 友好按钮 UI + 冷却模式(见 能力).

DataStoreService

保存 + JSON + 经济系统

ScreenGui / GuiObjects

All Out UI 系统


你的第一个小时(推荐路径)

  1. 中的“捡苹果”流程操作 开始使用 CSL 浏览 CSL 基础知识,见 尤其是, ao_startao_update

  2. ,以及创建组件)。 检视器.


了解如何通过

脚本思维模型(Lua → CSL) 在 Roblox 中你通常会编写一个/Script LocalScript来查找对象(Workspace.Foo.Bar

  • )并连接事件。在 All Out 中,你通常会: 用 CSL 编写 组件类(行为)。

  • 在编辑器中将它们附加到实体(或在运行时生成实体并添加组件)。

  • 使用 @ao_serialize 在组件上存储可调值(以便你可以在检查器中为每个实体调整)。

下面是一个小示例,感觉像是“放在对象下的 Script”,但以 CSL 组件的形式表达:

如果你想要一个每个服务器/会话运行一次的“游戏脚本”,你通常会把它放在你的主生命周期过程(尤其是, ao_start,等)中。参见 开始使用 CSL.


你会识别的交互(以及它们如何转换)

ProximityPrompt → Interactable

如果你在 Roblox 中使用了 ProximityPrompt.Triggered ,最接近的等价物是一个 Interactable派生的组件。从这里开始:

“触碰”拾取物 / 触发区

Roblox 的 BasePart.Touched 是拾取物、伤害区和检查点的常见模式。在 All Out 中, 碰撞进入/退出回调在 CSL 中尚未实现,所以标准方法是:

  • 查询附近的玩家/组件

  • 做一个简单的距离检查

  • 如果你需要进入/退出事件,追踪上一帧谁在“内部”

见以下的“伪碰撞行为”:


玩家行为(工具 / 键位绑定 / 移动端控制)

如果你习惯于 Roblox 的“工具”脚本或自制的输入 + 冷却系统,改用 能力(Abilities) 。它们在移动端和 PC 上与一致的 UI 一起工作得很好。


保存数据(DataStoreService → 保存系统)

对于持久化(货币、解锁、进度、美化),从以下开始:


UI(ScreenGui → All Out UI)

Roblox UI 通常从 ScreenGuiFrame/TextButton 层级开始。在 All Out 中,从这里开始:


Roblox 开发者常见的移植陷阱

  • 没有“工作区服务”树:不要去寻找 ReplicatedStorage/ServerScriptService 的等价物——使用编辑器的层级 + 你的项目的 scripts 文件夹。

  • 不要等待 Touched 事件:在 CSL 支持碰撞回调之前使用范围查询(上方链接)。

  • 预制件实例尚未完全参数化:如果你需要许多具有不同值的副本,可能需要“取消链接”或创作独特的实体(见 预制件).

  • 把“组件”当作代替“标签”来思考:在你会使用 CollectionService 标签的地方,你通常会添加一个标记/行为组件。


接下来去哪儿

最后更新于