占位符
如何在 nanos world Forge 中使用占位符
占位符 许你在地图中放置可以导出为 Lua 代码的 Actor,从而轻松定义生成点、门或任何你想在脚本中包含的其他实体。
与 ADK 中的占位符不同,Forge 的占位符不局限于硬编码的类。 你可以创建具有自定义属性的专属占位符 Actor,并将其导出为 Lua 代码。
创建占位符
占位符组件
要创建占位符,你需要向 Actor 添加一个 Placeholder Component。 该组件允许你定义在使用占位符导出工具时将要导出的属性。
字段绑定
Forge 占位符使用字段绑定来指定如何从 Actor 获取数据。 你可以将字段绑定到 Actor 的属性、函数,甚至是其他组件上。

占位符组件属性

| 属性 | 描述 |
|---|---|
| 组名称 | 导出代码中使用的类别名称(例如:"Props"、"Doors"、"PlayerStarts") |
| 字段 | 字段定义列表,用于指定要导出的数据以及如何获取该数据 |
使用 Placeholder Exporter
Placeholder Exporter 工具使用起来非常简单。 一旦你在地图中放置了占位符,就可以使用该工具生成代表这些占位符的 Lua 代码:

示例道具占位符
在此示例中,我们将创建一个代表 Prop 实体的自定义占位符。
首先,创建一个继承自 AStaticMeshActor 的新 Actor,该类是包含静态网格体组件的 Actor 的基类。 这样我们就能在编辑器中看到该道具。

将其命名为 BP_PropPlaceholder 并向其添加一个 Placeholder Component:

在占位符组件中进行如下设置:

你可以在地图中放置多个 BP_PropPlaceholder Actor 的实例,并更改它们的静态网格体。
现在使用 Placeholder Exporter 工具将这些占位符导出为 Lua 代码:
local Placeholders = {
Props = {
{
location = Vector(340, 720, 0),
rotation = Rotator(0, 0, 0),
static_mesh = "my-asset-pack::Cube"
},
{
location = Vector(950, 720, 0),
rotation = Rotator(0, 0, 0),
static_mesh = "my-asset-pack::Cube"
},
{
location = Vector(-150, 720, 0),
rotation = Rotator(0, 0, 0),
static_mesh = "my-asset-pack::Cube"
}
}
}
大功告成! 你现在拥有了一个自定义占位符,可用于在地图中放置道具,并将其导出为 Lua 代码以在脚本中使用。
内置占位符

PlaceholderPlayerStart
PlaceholderPlayerStart 是一个内置占位符,代表玩家的生成点。 它会导出玩家出生点的位置和旋转。