主题
SkinUnit
概览
| 字段 | 值 |
|---|---|
| Kind | Unit · 单位 Unit |
| Realm | common |
继承关系
- Unit(4 属性 / 25 函数 / 6 事件)
- [SkinUnit](9 属性)
继承成员
1 个来源 / 4 属性 / 25 函数 / 6 事件
- 来自 Unit(4 属性 / 25 函数 / 6 事件)
- 属性:
AssetId、Name、Desc、Parent - 函数:
ClearAllChildren、GetChildren、GetDescendants、IsAncestorOf、IsDescendantOf、FindFirstAncestor、FindFirstAncestorWhichIsA、FindFirstAncestorOfClass、FindFirstChild、FindFirstChildWhichIsA、FindFirstChildOfClass、HasChildren、GetChildCount、GetChildAtIndex、SetAttribute、GetAttribute、GetAllProps、Clone、IsA、Destroy、GetPropertyChangedSignal、GetAttributeChangedSignal、FindFromPath、GetFullPath、GetDebugId - 事件:
ChildAdded、ChildRemoved、DescendantAdded、DescendantRemoving、AncestryChanged、Destroying
- 属性:
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 | 类型 | 默认值 | 说明 |
|---|---|---|---|
SkinId | String | "" | SkinUnit 的皮肤标识属性,类型为字符串,用于指定该皮肤单位所使用的皮肤资源标识。 |
ModelColor1 | Color | Color.New(255, 255, 255, 255) | SkinUnit 的染色区域 1 颜色属性,类型为 Color,用于描述皮肤模型上第 1 个染色区域的颜色。 |
ModelColor2 | Color | Color.New(255, 255, 255, 255) | SkinUnit 的染色区域 2 颜色属性,类型为 Color,用于描述皮肤模型上第 2 个染色区域的颜色。 |
ModelColor3 | Color | Color.New(255, 255, 255, 255) | SkinUnit 的染色区域 3 颜色属性,类型为 Color,用于描述皮肤模型上第 3 个染色区域的颜色。 |
ModelColor4 | Color | Color.New(255, 255, 255, 255) | SkinUnit 的染色区域 4 颜色属性,类型为 Color,用于描述皮肤模型上第 4 个染色区域的颜色。 |
MaterialParam | MaterialParam | - | SkinUnit 的材质参数属性,类型为 MaterialParam,用于承载该皮肤使用的一组材质参数对象。 |
UseSkinList | Bool | false | 多槽位皮肤开关;父单位未启用自定义外观时可生效,开启后每个子网格可独立配置皮肤与染色。父单位启用自定义外观时,编辑器属性面板隐藏此项。 |
SkinSlots | Array<SkinSlot> | [] | 各子网格的皮肤与染色配置列表,元素包含 SkinId、ModelColor1~4,通常与 UseSkinList 配套使用。父单位启用自定义外观时,编辑器属性面板隐藏此项。 |
MaterialParamList | Array<MaterialParam> | [] | 材质参数列表,类型为 Array,默认值为空表。SkinUnit 通过该属性集中保存与皮肤相关的材质参数配置数据。 |
