跳至正文
版本:最新版 - a1.148.0 ⚖️

占位符

如何在 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 是一个内置占位符,代表玩家的生成点。 它会导出玩家出生点的位置和旋转。