Skip to content

SeatUnit

概览

字段
KindUnit · 单位 Unit
Realmcommon

继承关系

  • Unit(4 属性 / 25 函数 / 6 事件)
    • SpaceUnit(3 属性 / 9 函数)
      • BasePart(23 属性 / 9 函数)
        • [SeatUnit](3 属性 / 1 事件)

继承成员

3 个来源 / 30 属性 / 43 函数 / 6 事件

SeatUnit 是座位外观与占用状态的接口类型。当前运行包可以创建并显示座位,但坐下交互与占用者事件尚不可依赖。

适用场景

当前仅适合验证座位模型外观;等运行包恢复 Occupant 与 OnOccupantChanged 后,再用于上下车、驾驶位或座位占用逻辑。

使用要点

设置 RenderMeshId 与 ModelVisible 后可检查座位外观。正式交互逻辑暂不要依赖 Occupant 或 OnOccupantChanged,并应对事件字段为空做保护。

注意事项

座位默认 ModelVisible 为 false,需设置 RenderMeshId 指定外观模型并将 ModelVisible 设为 true 才能在场景中看到座位。最新 Meta 已声明 Occupant 与 OnOccupantChanged;当前运行包实测新建 SeatUnit 虽可显示,但 OnOccupantChanged 字段可能为 nil,玩家也可能无法触发坐下交互。运行时实现与 Meta 对齐前,只能把创建代码视为外观验证,不能把 Occupant/OnOccupantChanged 用于正式交互逻辑。公开契约只声明 Occupant 为 Unit,后续恢复后也应以目标运行包支持的角色类型为准。

代码示例

创建座位并检查当前交互能力

lua
-- @runtime client
local world = game:GetService("World")

local seat = world:CreateUnit("SeatUnit", {
    RenderMeshId = "official://mesh/90002",
    ModelVisible = true,
})

local occupantSignal = seat["OnOccupantChanged"]
if occupantSignal == nil then
    print("当前运行包尚未提供座椅占用事件,请勿依赖交互逻辑")
else
    print("座椅占用事件已可用,可在目标包继续验证")
end

属性 (3)

Name类型默认值说明
DisabledBoolfalse控制座位是否禁用,禁用后玩家无法与座位交互。
OccupantUnit-表示当前座位上的乘客单位,即正在乘坐该座位的单位实例。
RenderMeshIdStringofficial://mesh/90002座位显示的模型资源 ID,用于指定座位的外观。

关联类型

事件 (1)

OnOccupantChanged

签名:OnOccupantChanged(occupant: Unit) 触发:local

当座位上的乘客发生变化时触发,回调参数为当前乘客的单位实例。

回调参数类型说明
occupantUnit当前乘客

示例代码

安全检查座位占用事件是否可用

lua
-- @runtime client
local world = game:GetService("World")
local seat = world:CreateUnit("SeatUnit", {
    RenderMeshId = "official://mesh/90002",
    ModelVisible = true,
})

local occupantSignal = seat["OnOccupantChanged"]
if occupantSignal == nil then
    print("当前运行包尚未提供座椅占用事件")
else
    occupantSignal:Once(function(occupant)
        print("座位乘客变化:", occupant)
    end)
end