如何通过脚本访问 Unity“Light 2D(脚本)”组件?

nea*_*eal 3 c# 2d lighting unity-game-engine

在我的 Unity 2D 游戏中,我有一个带有来自 Lightweight RP 包的光源组件“Light 2D(Script)”的角色。

我想使用下面的代码更改 Light 2D 的强度。但我无法将“Light 2D(脚本)”分配给public Light LightSourceUnity 检查器面板中的。

我尝试过使用public Light2D LightSource 类,但它似乎不存在。

有没有其他方法可以访问 2D Light 组件或者我做错了什么?如果有帮助的话,我还添加了检查器窗格的屏幕截图。

如果您需要更多信息,请告诉我,我希望有人可以提供帮助。谢谢

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class Lighting : MonoBehaviour
{
    public Light LightSource;
    public float lightIntensity;
    public float minIntensity = 0.35f, maxIntensity = 0.65f;



    void Update()
    {
        lightIntensity = Random.Range(minIntensity, maxIntensity);
        LightSource.intensity = lightIntensity;
    }
}
Run Code Online (Sandbox Code Playgroud)


角色检查器截图

小智 5

假设您使用通用渲染管道进行 2D 照明,这就是我找到的解决方案。

在 Light2D 脚本中(您可以通过单击 Light2D 组件右上角的三个垂直点并点击编辑脚本来打开该脚本),有命名空间 UnityEngine.Experimental.Rendering.Universal 的声明,以便简单地在在你的脚本顶部写

using UnityEngine.Experimental.Rendering.Universal;

执行此操作时可能会出现错误,但请继续。从这里开始,您将能够像引用任何其他组件一样引用 Light2D 组件,例如使用“GetComponent<Light2D>()如果其中任何一个在您的代码编辑器中给出错误,仍然编译以测试它是否有效,我有一个功能齐全的脚本”使用这种方法但Visual Studio仍然认为Light2D不存在。无论如何,这似乎有效,我希望这对其他人也有效。