Skip to content

Sky ​

概览 ​

字段值
KindUnit · 单位 Unit
Realmcommon

继承关系 ​

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

继承成员 ​

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

Sky 是可完全定制的普通天空单元,用于替换或调整当前场景的天空表现。它既能通过 Template 直接套用内置天空模板,也能用 SkyboxTexture 指定背景贴图,并可通过 Orientation 与 YOffset 改变天空朝向和垂直位置,再用 DistortionEnabled、DistortionStrength、DistortionFrequency 控制天空扰动效果。实例挂载到 LightingService 后即会改变场景天空外观,移除后恢复默认天空。

适用场景 ​

常用于天气切换、昼夜氛围变化或进入特定玩法区域时更换地图天空,例如把 Template 设为 Enums.SkyTemplate.Day 或 Enums.SkyTemplate.Night 切换昼夜,再配合扰动参数与偏移量营造特殊环境氛围。

使用要点 ​

先用 game:CreateUnit("Sky", {}) 或 World:CreateUnit("Sky", config) 创建实例,并把实例的 Parent 指向 LightingService 使其生效;接着设置 Template 选定天空模板,再按需调整 Orientation、YOffset 等属性。若想启用动态效果,把 DistortionEnabled 置为真后配置 DistortionStrength 与 DistortionFrequency;切换模板或参数时直接给这些属性重新赋值即可。

注意事项 ​

Sky 是完整的可定制天空单元,支持通过 SkyTemplate 枚举切换模板并自由调整 Orientation/YOffset/Distortion 等参数。与 PresetSky 相比,Sky 功能更全面、模板更丰富,新项目建议优先使用 Sky。Sky 实例必须挂载到 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]Sky 单位的旋转(朝向)属性,数据类型为 Vector3,默认值为 (0, 0, 0)。该属性可读可写,读取时返回一个 Vector3,赋值时需传入完整的 Vector3 值来替换原有朝向。
YOffsetFloat0.0天空在垂直方向上的偏移量。
DistortionEnabledBoolfalse是否启用天空扰动效果。
DistortionStrengthFloat0.0天空扰动效果的强度。
DistortionFrequencyFloat0.0天空扰动效果的频率。

关联类型 ​