Skip to content

Sky

概览

字段
KindUnit · 单位 Unit
Realmcommon

继承关系

  • Unit(4 属性 / 25 函数 / 6 事件)
    • BaseSky(1 属性)
      • [Sky](7 属性)

继承成员

2 个来源 / 5 属性 / 25 函数 / 6 事件

天空单元,负责为场景提供可定制的背景天空。它支持通过 Template 属性从 SkyTemplate 枚举中挑选现成模板,也能直接指定 SkyboxTexture 背景贴图,并允许调整 Orientation 旋转、YOffset 垂直偏移以及 DistortionEnabled、DistortionStrength、DistortionFrequency 等扰动参数来营造动态天空效果。

适用场景

适用于项目需要统一或动态切换天空氛围的阶段,例如按照当前关卡的剧情进度把天空从白天切到黄昏或夜晚,再配合旋转与扰动参数增强画面的表现力。

使用要点

先通过 game:CreateUnit("Sky", {}) 或 World:CreateUnit("Sky", ...) 创建 Sky 实例,并将其 Parent 设置为灯光服务所在节点,使天空真正应用到场景。随后可读写 Template 属性并传入 Enums.SkyTemplate 枚举值来切换不同天空模板,同时配合 Orientation、YOffset、DistortionEnabled、DistortionStrength、DistortionFrequency 调整旋转、偏移和扰动效果。

注意事项

Sky 是完整的可定制天空单元,支持通过 SkyTemplate 枚举切换模板并自由调整 Orientation/YOffset/Distortion 等参数。与 PresetSky 相比,Sky 功能更全面、模板更丰富,新项目建议优先使用 SkySky 实例必须挂载到 LightingService 下才能生效,调用 Destroy 或移除 Parent 会立即恢复默认天空。

代码示例

创建并配置普通天空

lua
-- @runtime client
local Lighting = game:GetService("LightingService")
local sky = game:CreateUnit("Sky", {
    Template = Enums.SkyTemplate.Day,
    Orientation = Vector3.New(0, 45, 0),
    AffectedByFog = true,
})
sky.Parent = Lighting

属性 (7)

Name类型默认值说明
TemplateSkyTemplateEnums.SkyTemplate.Night天空模板属性,用于指定当前天空采用的预设模板类型。模板定义了天空的主要氛围风格,取值需来自 SkyTemplate 枚举,例如白天、夜晚、黄昏等不同场景模板。
SkyboxTextureStringofficial://dds/1天空盒背景贴图属性,用于指定当前天空所使用的背景纹理资源。当使用预设天空模板时,该属性通常会携带模板对应的贴图;也可以单独赋值以替换天空背景表现。
OrientationVector3[0, 0, 0]天空盒的旋转角度,以欧拉角(度)表示。
YOffsetFloat0.0天空在垂直方向上的偏移量。
DistortionEnabledBoolfalse是否启用天空扰动效果。
DistortionStrengthFloat0.0天空扰动效果的强度。
DistortionFrequencyFloat0.0天空扰动效果的频率。

关联类型