# LightComponent **命名空间**: `XCEngine::Components` **类型**: `class` **头文件**: `XCEngine/Components/LightComponent.h` **描述**: 光源组件,支持方向光、点光、聚光灯三种类型,可设置颜色、强度和阴影。 ## 概述 LightComponent 是 XCEngine ECS 系统中的光源组件,支持三种光源类型:方向光(Directional)、点光(Point)和聚光灯(Spot)。方向光从无穷远处照射,模拟太阳光;点光从一个点向所有方向照射;聚光灯沿一个锥形方向照射。光源组件可以设置颜色、强度、作用范围和是否投射阴影。 ## 枚举 ### LightType | 枚举值 | 描述 | |--------|------| | `Directional` | 方向光,从无穷远处照射 | | `Point` | 点光,从一个点向所有方向照射 | | `Spot` | 聚光灯,沿锥形方向照射 | ## 公共方法 ### 光源类型 | 方法 | 描述 | |------|------| | [`GetLightType`](get-light-type.md) | 获取光源类型 | | [`SetLightType`](set-light-type.md) | 设置光源类型 | ### 光源属性 | 方法 | 描述 | |------|------| | [`GetColor`](get-color.md) | 获取光源颜色 | | [`SetColor`](set-color.md) | 设置光源颜色 | | [`GetIntensity`](get-intensity.md) | 获取光源强度 | | [`SetIntensity`](set-intensity.md) | 设置光源强度 | | [`GetRange`](get-range.md) | 获取作用范围(点光/聚光灯) | | [`SetRange`](set-range.md) | 设置作用范围 | ### 聚光灯属性 | 方法 | 描述 | |------|------| | [`GetSpotAngle`](get-spot-angle.md) | 获取聚光灯角度 | | [`SetSpotAngle`](set-spot-angle.md) | 设置聚光灯角度 | ### 阴影 | 方法 | 描述 | |------|------| | [`GetCastsShadows`](get-casts-shadows.md) | 检查是否投射阴影 | | [`SetCastsShadows`](set-casts-shadows.md) | 设置是否投射阴影 | ## 使用示例 ```cpp #include #include using namespace XCEngine::Components; void SetupLighting(GameObject* lightObject) { auto light = lightObject->AddComponent(); light->SetLightType(LightType::Directional); light->SetColor(Math::Color::White()); light->SetIntensity(1.0f); light->SetCastsShadows(true); } void SetupPointLight(GameObject* pointLightObject) { auto pointLight = pointLightObject->AddComponent(); pointLight->SetLightType(LightType::Point); pointLight->SetColor(Math::Color(1.0f, 0.8f, 0.6f, 1.0f)); pointLight->SetIntensity(2.0f); pointLight->SetRange(10.0f); } ``` ## 相关文档 - [Components 模块总览](../components.md) - Components 模块总览 - [Component](../component/component.md) - 组件基类 - [TransformComponent](../transform-component/transform-component.md) - 变换组件