Skip to content

SkinUnit ​

概览 ​

字段值
KindUnit · 单位 Unit
Realmcommon

继承关系 ​

  • Unit(4 属性 / 25 函数 / 6 事件)
    • [SkinUnit](9 属性)

继承成员 ​

1 个来源 / 4 属性 / 25 函数 / 6 事件

SkinUnit 是挂在目标单位下的外观覆盖组件,可用 SkinId、四组染色颜色和 MaterialParam 描述要应用的皮肤外观。编辑器中,多槽位皮肤配置与父单位的自定义外观模式互斥;父单位启用 UseCustomAppearance 时,UseSkinList 和 SkinSlots 不在属性面板显示。

适用场景 ​

用于给角色或模型单位挂载皮肤资源、分区染色或材质参数覆盖。

使用要点 ​

通过 game:CreateUnit("SkinUnit", config) 创建实例,设置 SkinId、ModelColor1~ModelColor4 或 MaterialParam 后,将 SkinUnit.Parent 设为要覆盖外观的目标单位。

注意事项 ​

SkinUnit 需要作为子对象挂到目标单位下;SkinId 和染色/材质字段应使用目标运行包可访问的资源与参数,并在目标端确认最终外观。UseSkinList 与 SkinSlots 是公开的运行时属性;修改槽位列表后应整体赋回 SkinSlots。不要依赖未在公开 Meta 中声明的刷新时机或内部实现细节。

代码示例 ​

创建 SkinUnit 并挂到目标单位 ​

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

local target = world:CreateUnit("WorldUnit", {
    Name = "SkinTarget",
})

local skin = world:CreateUnit("SkinUnit", {
    SkinId = "official://skin/60001",
    ModelColor1 = Color.New(255, 255, 255, 255),
    ModelColor2 = Color.New(255, 220, 180, 255),
    Parent = target,
})

print("皮肤覆盖已挂载:", skin.Parent == target)

属性 (9) ​

Name类型默认值说明
SkinIdString""SkinUnit 的皮肤标识属性,类型为字符串,用于指定该皮肤单位所使用的皮肤资源标识。
ModelColor1ColorColor.New(255, 255, 255, 255)SkinUnit 的染色区域 1 颜色属性,类型为 Color,用于描述皮肤模型上第 1 个染色区域的颜色。
ModelColor2ColorColor.New(255, 255, 255, 255)SkinUnit 的染色区域 2 颜色属性,类型为 Color,用于描述皮肤模型上第 2 个染色区域的颜色。
ModelColor3ColorColor.New(255, 255, 255, 255)SkinUnit 的染色区域 3 颜色属性,类型为 Color,用于描述皮肤模型上第 3 个染色区域的颜色。
ModelColor4ColorColor.New(255, 255, 255, 255)SkinUnit 的染色区域 4 颜色属性,类型为 Color,用于描述皮肤模型上第 4 个染色区域的颜色。
MaterialParamMaterialParam-SkinUnit 的材质参数属性,类型为 MaterialParam,用于承载该皮肤使用的一组材质参数对象。
UseSkinListBoolfalse多槽位皮肤开关;父单位未启用自定义外观时可生效,开启后每个子网格可独立配置皮肤与染色。父单位启用自定义外观时,编辑器属性面板隐藏此项。
SkinSlotsArray<SkinSlot>[]各子网格的皮肤与染色配置列表,元素包含 SkinId、ModelColor1~4,通常与 UseSkinList 配套使用。父单位启用自定义外观时,编辑器属性面板隐藏此项。
MaterialParamListArray<MaterialParam>[]材质参数列表,类型为 Array,默认值为空表。SkinUnit 通过该属性集中保存与皮肤相关的材质参数配置数据。

关联类型 ​