Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Problema con el Screen.resolution

Iniciado por ftejada, Febrero 16, 2016, 01:46:45 PM

Tema anterior - Siguiente tema
Hola a todos! tengo el siguiente problema, estoy intentando obtener todas las resoluciones que admite el monitor (que creo que es con Screen.resolutions), para poder generar las distintas opciones en el menu del juego y que el player pueda cambiar a la resolucion que quiera. Pongo el codigo que viene en la documentacion para probar...
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Start() {
        Resolution[] resolutions = Screen.resolutions;
        foreach (Resolution res in resolutions) {
            print(res.width + "x" + res.height);
        }
        Screen.SetResolution(resolutions[0].width, resolutions[0].height, true);
    }
}
y resulta que solo me escribe por consola una resolucion 640 x 480.¿He entendido mal para lo que sirve el Screen.resolutions o es que hago algo mal? He estado mirando en documentacion, si en los parches de la ultima version de Unity, que es la que tengo, habia algun bug corregido referente a esto, he mirado por el foro (preguntas antiguas)... etc pero no he encontrado nada Alguien puede orientarme. Espero vuestra respuesta, un saludo y gracias de antemano.


¿Estas trabajando sobre Windows?Hace un tiempo tuve un problema similar, si encuentro como lo resolví te paso la referencia, pero era una tontería!..

Cita de: francoe1 date=1455660256" data-ipsquote="" data-cite="francoe1" class="ipsQuote¿Estas trabajando sobre Windows?Hace un tiempo tuve un problema similar, si encuentro como lo resolví te paso la referencia, pero era una tontería!..
Si trabajo desde Windows. Ojalá y lo encuentres porque no se me ocurre la manera de solucionarlo. Gracias por contestar a los dos, un saludo

He puesto la pregunta en el foro oficial. A ver si me contestan y comento la solucion. Saludos

sospecho que es por como estas manejando el array Resolution

Febrero 22, 2016, 12:36:18 PM #6 Ultima modificación: Febrero 22, 2016, 12:36:54 PM por ftejada
Cita de: yugosama date=1456025251" data-ipsquote="" data-cite="yugosama" class="ipsQuotesospecho que es por como estas manejando el array Resolution
Puedes ser algo más claro de cual es tu sospecha?... porque el codigo que utilizo es el que viene en la documentación oficial de Unity (no hay nada cambiado)... y hasta donde yo llego no parece mal utilizado.... pero a saber!Ruego por favor me aclares él por qué de tú sospecha para ver si así averiguamos la causa del problema. Un saludo y gracias por contestar 


Cita de: iRobb date=1456145218" data-ipsquote="" data-cite="iRobb" class="ipsQuoteEs PC, Android, ??
pc

Te va a devolver esa resolución en el editor. Si le das a Build & Run verás como al ejecutarlo te da las correctas.

Cita de: iRobb date=1456213710" data-ipsquote="" data-cite="iRobb" class="ipsQuoteTe va a devolver esa resolución en el editor. Si le das a Build & Run verás como al ejecutarlo te da las correctas.
Parece que es asi. Es como lo de cambiar las resoluciones en tiempo de ejecucion desde el editor, no funciona pero en la build si. Lo raro es que a kaito tampoco le iba en la buid... Y ya que estoy con este tema... qué tengo que tener en cuenta para poder posicionar los text de UI mediante su "Transform" para que queden bien posicionadas mediante codigo? Me he pegado una hora probando y no consigo posicionarlas donde yo quiero y que al escalarse la Screen o cambiar la resolucion, se adapte la posicion de esos text UI al nuevo tamaño de la pantalla. Mi idea es rescatar del array resolution[] todas las resolution que tenga el monitor y que mediante codigo aparezcan los text y toggle correspondientes y posicionados. Y que no se desajusten en su posicion cuando el tamaño de la pantalla se cambie.Algun consejo por favor...

Pues yo no lo hago así basándome en las posibles resoluciones.Yo creo un panel para todo el Canvas y subpaneles que posiciono con sus anchors. Los objetos UI dentro de los subpaneles también con anchors. Los text con el best fit activado siempre.

Tenes que fijarte en las opciones del Canvas, existe una manera (http://docs.unity3d.com/Manual/script-CanvasScaler.html) de resolver estos problemas de múltiples resoluciones y aspec ratio, te recomiendo siempre utilizar la resolución mas alta que tu juego dispondrá, ya que esta función esta hecha para funcionar de esa manera.

Screen.SetResolution(resolutions[0].width, resolutions[0].height, true);
se lo digo, o se lo dice alguien?  Suponiendo que no sea eso, podría ser que la estructura de Screen o de Resolution te esté devolviendo la activa en ese momento, no todas las disponibles...

No, pero es cierto que devuelve solamente una en el Editor, y como dije las correctas en Build. El print de su código las mostraría todas.

Etiquetas: