Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: davidal en Febrero 24, 2016, 11:44:05 AM

Título: ¿como desactivo efectos de camara al bajar calidad?
Publicado por: davidal en Febrero 24, 2016, 11:44:05 AM
Hola, me gustaría saber como hago que, cuando seleccione la calidad "good" (o una inferior), me desactive los efectos de la cámara (como el blur, la corrección de color, etc..).Muchas gracias
Título: ¿como desactivo efectos de camara al bajar calidad?
Publicado por: hammer en Febrero 24, 2016, 02:37:18 PM
Buenas!!http://docs.unity3d.com/ScriptReference/QualitySettings.htmlCon un script en la camara y en el start/awake utilizas el QualitySettings.GetQualityLevel() a partir de ahi activas/desactivas lo que quieras de la camara. 
Título: ¿como desactivo efectos de camara al bajar calidad?
Publicado por: ftejada en Febrero 25, 2016, 07:57:38 PM
Bueno yo he hecho algo similar a lo que necesitas davidal, metiendolo en un menu de pause en el juego. Supongo que habrá muchas formas de abordarlo, pero te comento un poco para que te hagas una idea...Creo que deberias crear un script que se encargue de todo esto por ejemplo ScriptQualityGraphics. En el debes crear tantas variables publicas como efectos vayas a tener metidos en tu camera de los scripts de cada susodicho efecto: Algo asi... 
//variables publicas de que contienen los scripts de los efectos de PostProcessing
public MotionBlur                                       motionBlur;
public Bloom                                            bloom;
public Antialiasing                                     antialiasing;      
public ScreenOverlay                                    screenOverlay;

//....
este script agregaselo a la camara y desde el inspector agrega al script cada componente de efecto que le hayas puesto a la camara. Ahora simplemente solo debes activar y desactivar cada variable de postProcessing mediante su variable "enabled" cuando te apetezca... es decir, en tu caso donde te dijo hammer, en la funcion que crees que lleve el codigo en la que cambies la calidad de los graficos. Pero yo crearia una funcion publica por cada opcion de calidad grafica, para que puedas utilizarla en un button de la UI por ejemplo... algo asi 
public void changeQualityGraphic_Fantastic()
    {
        QualitySettings.SetQualityLevel(5);//0 es fasted, 1 fast, etc, 5 Fantastic
       
        //Y ahora activamos el postProcesado que queramos. En este caso como es fantastic
        //activamos todos los que tenemos
        motionBlur.enabled = true;
        bloom.enabled = true;
        antialiasing.enabled = true;          
        screenOverlay.enabled = true;
           
    }
   
    // O ...
   
 public void changeQualityGraphic_Fasted()
    {
        QualitySettings.SetQualityLevel(0); //0 es fasted, 1 fast, etc
       
        //Y ahora activamos el postProcesado que queramos. En este caso como es fasted
        //desactivamos todos los que tenemos
        motionBlur.enabled = false;
        bloom.enabled = false;
        antialiasing.enabled = false;          
        screenOverlay.enabled = false;
           
    }  
Si tienes mas dudas o no te queda algo claro dimelo y te lo explico Un saludo