nea*_*eal 3 c# 2d lighting unity-game-engine
在我的 Unity 2D 游戏中,我有一个带有来自 Lightweight RP 包的光源组件“Light 2D(Script)”的角色。
我想使用下面的代码更改 Light 2D 的强度。但我无法将“Light 2D(脚本)”分配给public Light LightSource
Unity 检查器面板中的。
我尝试过使用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不存在。无论如何,这似乎有效,我希望这对其他人也有效。