You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity C#中通过脚本控制Lighting2D的intensity属性?

Unity 2D光源Intensity属性访问方案

你调用GetComponent<>()失败的核心原因是2D光源使用的是URP/2D渲染管线专属的Light2D组件,而非Unity默认的3DLight组件,按以下步骤操作即可正常访问:

  • 首先在脚本头部引入对应命名空间,才能识别Light2D类型:
using UnityEngine.Rendering.Universal;
  • 之后获取组件并操作intensity属性的示例代码如下:
// 声明Light2D类型变量存储组件引用
private Light2D target2DLight;

private void Awake()
{
    // 若脚本挂载在2D光源所在GameObject上,直接获取当前物体的Light2D组件
    target2DLight = GetComponent<Light2D>();
    
    // 若2D光源挂在当前物体的子物体上,替换为下行代码即可
    // target2DLight = GetComponentInChildren<Light2D>();
}

// 示例:修改光源亮度的方法
public void UpdateLightIntensity(float newValue)
{
    // 先做空值判断避免空引用报错
    if(target2DLight != null)
    {
        target2DLight.intensity = newValue;
    }
}

额外排查点:如果按上述写法还是无法获取,可在Inspector面板确认目标物体上确实挂载了Light 2D组件,没有拼写错误或者组件遗漏。

内容的提问来源于stack exchange,提问作者Georgian User

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 13:24:04