我正在Unity中进行2D游戏,我想知道我们如何使用游戏选项菜单中的滑块管理亮度。我想知道解决该问题的步骤。
答案 0 :(得分:2)
订阅滑块的onValueChanged
事件,以在滑块值更改时得到通知。发生这种情况时,将滑块的值分配给灯光的强度值:Light.intensity = Slider.value
。
就是这样。
//Add your slider from the Editor
public Slider sliderRef;
//Add your light from the Editor
public Light lightRef;
void OnEnable()
{
//Subscribe to the Slider Click event
sliderRef.onValueChanged.AddListener(sliderCallBack);
}
//Will be called when Slider changes
void sliderCallBack(float value)
{
Debug.Log("Slider Value Changed: " + value);
lightRef.intensity = sliderRef.value;
}
void OnDisable()
{
//Un-Subscribe To Slider Event
sliderRef.onValueChanged.RemoveAllListeners();
}
答案 1 :(得分:0)
我想有几种选择取决于您希望达到的目标。但是这些浮现在脑海:
在相机前面使用半透明的黑色四边形,只需更改材质颜色,这可能是最简单的。缺点,由于在整个屏幕上显示Alpha,会降低性能
使用后期处理效果https://docs.unity3d.com/Manual/PostProcessingOverview.html。缺点,会降低性能
如果您使用的是自定义着色器,则可以使用一个全局变量来定义亮度https://docs.unity3d.com/ScriptReference/Shader.SetGlobalFloat.html
找到一种方法来操纵手机的固有亮度,这会有些棘手,并且可能不是您想要的效果