Skip to content

SeatUnit ​

概览 ​

字段值
KindUnit · 单位 Unit
Realmcommon

继承关系 ​

  • Unit(4 属性 / 25 函数 / 6 事件)
    • SpaceUnit(2 属性 / 9 函数)
      • BasePart(24 属性 / 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-当前座位占用者,类型为 Unit;编辑器面板不可编辑不等同于脚本只读。实际座位交互与占用状态支持情况需在目标运行包确认。
RenderMeshIdStringofficial://mesh/90002SeatUnit 的模型资源 ID 属性,类型为 String,用于指定该座位单位渲染所使用的模型资源。

关联类型 ​

事件 (1) ​

OnOccupantChanged ​

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

SeatUnit 的 OnOccupantChanged 事件在座位乘客发生变更时触发,回调参数 occupant 为 Unit 类型,代表本次变更后座位上的乘客。该事件属于 SeatUnit 的公开事件,可用于感知座位的占用状态变化。

回调参数类型说明
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