如何在unity3D上使整个场景在黑暗中

时间:2015-06-19 01:52:00

标签: unity3d

喜欢当游戏暂停时,只有“恢复”按钮点亮,其他整个场景都在黑暗中,是否有某些功能可以做到?

2 个答案:

答案 0 :(得分:2)

  • 创建一个GUITexture对象:在unity菜单中:GameObject - >创建GUI纹理,我们称之为darkBackground;
  • 将暗纹理附加到darkBackground;
  • 禁用darkBackground对象(您可以以交互方式或以编程方式调用)

    darkBackground.SetActive(假);

暂停时,通过调用

打开/启用此GUITexture游戏对象
darkBackground.SetActive(true); 

答案 1 :(得分:0)

取决于你在做什么,我这样做的方式是:

  • 为GUI创建第二个摄像头。
  • 将第二个摄像头深度设置为主摄像头后面。
  • 在GUI相机前面添加黑色平面(选择着色器为透明)
  • 在此项目中添加一个脚本,以便按下GUI按钮激活它并将透明度设置为您想要的级别。

      float transparency = 0f;
      bool isGUIAcitve = false;
  

      if(Input.GetKeyDown(Keycode.P) && this.isGUIActive == false){

        gameObject.GetComponent <Renderer>().enabled = true; 
        Color oldPlaneColor = GetComponent<Renderer> ().material.color;
        oldPlaneColor.a = this.transparency;
        GetComponent<Renderer> ().material.color = oldPlaneColor;

        }else if(Input.GetKeyDown(Keycode.P) && this.isGUIActive == true){

          gameObject.GetComponent <Renderer>().enabled = false;

        }
      

P.S:您可以将飞机换成GUITexture或Spriter Renderer图像。