Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Argo214 en Marzo 04, 2016, 01:56:00 PM

Título: Cómo independizar zonas de la pantalla en el teléfono
Publicado por: Argo214 en Marzo 04, 2016, 01:56:00 PM
Buenos días! A ver si me podéis ayudar. Estoy desarrollando un juego para Android donde tengo un mapa de fondo que lo puedo encuadrar tocando en la pantalla con el dedo (tipo Google Maps) y un panel lateral con un texto en scroll. El problema es que al pasar el dedo para hacer scroll en el texto, el encuadre del mapa se mueve. Cómo podría independizar las 2 cosas para que cuando toque la pantalla para hacer scroll no se me mueva el mapa?? Muchas gracias!! 
Título: Cómo independizar zonas de la pantalla en el teléfono
Publicado por: juanma_teso en Marzo 04, 2016, 06:28:13 PM
Hazte una función y llámala antes de empezar cualquiera de las dos acciones, en esta función miras la ubicación de los toques respecto a la pantalla, si está en la zona del scroll, ejectuas esta parte, sino ejecutas la del movimiento, así lo hice yo, si por casualidad no borré el proyecto en el que tenía ese script te lo paso por aquí.
En una búsqueda rápida he encontrado el (uno de tantos) proyecto abandonado, te dejo la función que es muy simple pero cumple:
//Zona del menu
    bool ZonaBotonera(Vector2 v)
    {
        if (v.y < alturaMenuBotones)
 //constante, el valor lo asignaba con la otra función en el start()
            return true;
        else
            return false;
    }
Te dejo también la altura de la "botonera" jaja, recuerdo que al probar en diferentes tamaños de pantalla a veces fallaba, hasta que implementé estas líneas:
public float AlturaBotonera()
    {
        return (boton.sizeDelta.y * boton.lossyScale.y);
    }
No sé cómo funcionará el panel, pero supongo que será igual, cambia los valores 'Y' por 'X' y ya lo tienes, esta última función estaba en otro script donde manejaba toda la interfaz, pero eso ya como tu lo organices.
Título: Cómo independizar zonas de la pantalla en el teléfono
Publicado por: Argo214 en Marzo 04, 2016, 06:57:17 PM
Muchas gracias!! Voy a mirarlo.
Título: Cómo independizar zonas de la pantalla en el teléfono
Publicado por: Argo214 en Marzo 06, 2016, 07:06:15 PM
[quote author=juanma_teso" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35322" data-ipsquote-contentcommentid="127821">Hazte una función y llámala antes de empezar cualquiera de las dos acciones, en esta función miras la ubicación de los toques respecto a la pantalla, si está en la zona del scroll, ejectuas esta parte, sino ejecutas la del movimiento, así lo hice yo, si por casualidad no borré el proyecto en el que tenía ese script te lo paso por aquí.En una búsqueda rápida he encontrado el (uno de tantos) proyecto abandonado, te dejo la función que es muy simple pero cumple:
//Zona del menubool ZonaBotonera(Vector2 v)
    {
        if (v.y < alturaMenuBotones)
 //constante, el valor lo asignaba con la otra función en el start()
            return true;
        else
            return false;
    }
Te dejo también la altura de la "botonera" jaja, recuerdo que al probar en diferentes tamaños de pantalla a veces fallaba, hasta que implementé estas líneas:
public float AlturaBotonera()
    {
        return (boton.sizeDelta.y * boton.lossyScale.y);
    }
No sé cómo funcionará el panel, pero supongo que será igual, cambia los valores 'Y' por 'X' y ya lo tienes, esta última función estaba en otro script donde manejaba toda la interfaz, pero eso ya como tu lo organices.[/quote]Pues no lo consigo. Mi panel lateral con texto y botones está situado a la derecha y ocupa 250 px de ancho. Cómo lo tengo que hacer? Dónde tengo que colocar el script?
Título: Cómo independizar zonas de la pantalla en el teléfono
Publicado por: juanma_teso en Marzo 06, 2016, 07:29:43 PM
Te da algún error? Primero haz una prueba sustituyendo en la primera función la variable 'alturaMenuBotones' por los 250 px, pero ten en cuenta que tienes que saber cómo funcionan las coordenadas de la pantalla, empieza en la esquina superior izquierda y va aumentando, luego el valor que debes de poner para hacer la prueba es Screen.width - 250 y no tiene que ser menor que sino mayor que, esta función la puedes poner donde quieras, pero te aconsejo que lo hagas en el mismo script en el que gestionas los input del dedo. Si te funciona así haz la prueba usando la función, porque si escalas la UI te cambiarán los 250 px.
Título: Cómo independizar zonas de la pantalla en el teléfono
Publicado por: kaito en Abril 02, 2016, 07:45:37 AM
Puedes colocar al menú un boton para desplegar/ocultar:  (//<fileStore.core_Attachment>/monthly_2016_04/sdfjaslfjkslkfwlelelke382828sj2j.jpg.f49e8565aaa3c6afed92ef29521f9b7e.jpg)