Noticias

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

[Aporte] Control de Botones Básico para Android

Iniciado por Mantis, Marzo 21, 2013, 09:20:53 PM

Tema anterior - Siguiente tema
Perdon por el reflote,me ha venido muy bien,gracias,solo me falta sustituir saltar por el de ir arriba,pero ya me pondre mañana que hoy no me da tiempo de mas.
Enviado desde mi Nexus 7 mediante Tapatalk

Una pregunta. Si quiero usar unos png para usar como botones para el script. Cuál es la mejor forma de importarlos??


Es decir, importarlos como Texture, como Sprite o como GUI??

Bueno ya metí los png como GUI. 


Ahora usando el script del primer mensaje me sale el siguiente mensaje 17 veces
 

 
Assets/Scripts/InputControllerScript.cs(74,41): error CS1612: Cannot modify a value type return value of `UnityEngine.GUITexture.pixelInset'. Consider storing the value in a temporary variable
 
[/quote]
 
 
Que está pasando?

Nada no consigo que los botones se ajusten a la resolución de la pantalla a la que se use. 


Lo que sí mantengo es la posición si ajusto la posición local donde yo quiera en la ventana de juego, pero el tamaño no consigo ajustarlo. Establezco el localScale a 0 y pongo en el pixelInset el tamaño de la propia imagen y ese tamaño es el que queda siempre. Desde el script me da fallo. 

Cita de: Mantis date=1363897253Hola a todos.
A petición de un usuario voy a aportar un script para controlar un objeto mediante botones (GUITextures) en Android o dispositivos móviles.
Es un script muy simple con cuatro botones, pero pienso será de gran ayuda para el que esté comenzando con esto de los móviles.
 

public var ImagenBotonArriba: GUITexture;
public var ImagenBotonAbajo: GUITexture;
public var ImagenBotonIzquierda : GUITexture;
public var ImagenBotonDerecha: GUITexture;
private var BotonArribaPulsado : boolean = false;
private var BotonAbajoPulsado : boolean = false;
private var BotonIzquierdaPulsado : boolean = false;
private var BotonDerechaPulsado : boolean = false;
public var Speed : float = 10.0;
function Awake(){
    SituarControles();  
}
function Update(){
    if(Input.touchCount > 0){
        for (var i = 0; i < Input.touchCount; ++i) {  
            if(ImagenBotonArriba.HitTest(Input.GetTouch(i).position)){
                     
                BotonArribaPulsado = true;  
                                                    
            }else if(ImagenBotonAbajo.HitTest(Input.GetTouch(i).position)){
       
                BotonAbajoPulsado = true;  
                                                                                  
            }else if(ImagenBotonIzquierda.HitTest(Input.GetTouch(i).position)){
                     
                BotonIzquierdaPulsado = true;    
                                                                 
            }else if(ImagenBotonDerecha.HitTest(Input.GetTouch(i).position)){
       
                BotonDerechaPulsado = true;
            }            
        }
    }
   
    //UNA VEZ HEMOS RECIBIDO LAS ENTRADAS. ACTUAMOS!!!
    if(BotonAbajoPulsado){
   
        transform.Translate(-Vector3.up * Speed * Time.deltaTime);
       
    }else if(BotonArribaPulsado){
   
        transform.Translate(Vector3.up * Speed * Time.deltaTime);
    }    
         
    if(BotonDerechaPulsado){
   
         transform.Translate(Vector3.right * Speed * Time.deltaTime);
         
    }else if(BotonIzquierdaPulsado){
   
        transform.Translate(-Vector3.right * Speed * Time.deltaTime);      
    }    
                  
    //LO PONEMOS A FALSE PARA COMPROBAR EN EL SIGUIENTE Update() SI SE SIGUEN PULSANDO O NO.
    BotonDerechaPulsado = false;
    BotonIzquierdaPulsado = false;
    BotonArribaPulsado = false;   
    BotonAbajoPulsado = false;
}
function SituarControles(){
    //CONTROL ABAJO      
    ImagenBotonAbajo.transform.position = Vector3.zero;
    ImagenBotonAbajo.transform.localScale = Vector3.zero;
    ImagenBotonAbajo.guiTexture.pixelInset.width = Screen.width/7;
    ImagenBotonAbajo.guiTexture.pixelInset.height = ImagenBotonAbajo.guiTexture.pixelInset.width;    
    ImagenBotonAbajo.guiTexture.pixelInset.x = Screen.width - (ImagenBotonAbajo.guiTexture.pixelInset.width * 1.1);
    ImagenBotonAbajo.guiTexture.pixelInset.y =  Screen.height/30;
   
    //CONTROL ARRIBA    
    ImagenBotonArriba.transform.position = Vector3.zero;
    ImagenBotonArriba.transform.localScale = Vector3.zero;
    ImagenBotonArriba.guiTexture.pixelInset.width = Screen.width/7;
    ImagenBotonArriba.guiTexture.pixelInset.height = ImagenBotonArriba.guiTexture.pixelInset.width;    
    ImagenBotonArriba.guiTexture.pixelInset.x = Screen.width - (ImagenBotonArriba.guiTexture.pixelInset.width * 1.1);
    ImagenBotonArriba.guiTexture.pixelInset.y =  Screen.height/3;  
                               
    //CONTROL DERECHA      
    ImagenBotonDerecha.transform.position = Vector3.zero;
    ImagenBotonDerecha.transform.localScale = Vector3.zero;
    ImagenBotonDerecha.guiTexture.pixelInset.width = Screen.width/7;
    ImagenBotonDerecha.guiTexture.pixelInset.height = ImagenBotonDerecha.guiTexture.pixelInset.width;    
    ImagenBotonDerecha.guiTexture.pixelInset.x = ImagenBotonDerecha.guiTexture.pixelInset.width +
    ImagenBotonDerecha.guiTexture.pixelInset.width/1.8;
    ImagenBotonDerecha.guiTexture.pixelInset.y =  Screen.height/30;
       
    //CONTROL IZQUIERDA      
    ImagenBotonIzquierda.transform.position = Vector3.zero;
    ImagenBotonIzquierda.transform.localScale = Vector3.zero;
    ImagenBotonIzquierda.guiTexture.pixelInset.width = Screen.width/7;
    ImagenBotonIzquierda.guiTexture.pixelInset.height = ImagenBotonIzquierda.guiTexture.pixelInset.width;    
    ImagenBotonIzquierda.guiTexture.pixelInset.x =  Screen.width/50;
    ImagenBotonIzquierda.guiTexture.pixelInset.y =  Screen.height/30;                          
}

USO: Este script se lo ponen al objeto que vayan a mover. Luego se crean 4 GUitextures y se le agregan al script desde el inspector
Saludos
 
Buenas hermano, un pregunta yo tengo un script controller que es el que dectecta los click teclas y eso para el movimiento de mi personaje y tengo otro script player que activa las animaciones y sonidos.. ambos scripts los tengo en C# como podria utilizar de manera correcta este script sin pero sin perder mi animaciones que tengo ya realizadas espero me puedo ayudar tengo tiempo buscando una solucion Gracias feliz tarde.

@Ch4rlie Yo lo que uso para que se adapte a la pantalla son los botones con sprite ya que los sprites si se ajustan a las pantallas, los GUI tienes que tirar de script...
Eso es lo que yo utilizo.
 
Un saludo.

me podrías dar una ayuda ya tengo un juego solo falta adaptarlo a android mira quiero que cuando  (presionas "p" para disparar en el juego en unity en pc, me gustaría adaptarlo a android que con un botón touch realice la acción y así ) gracias espero y me puedas responder y ayudar :c si puedes soy nuevo en android y si puedes as la scripts porfavor he buscado en todos lados gracias :c

Cita de: Maglio date=1380495828Hola Chicos, Perdón que levante un tema de hace unos meses, pero estoy tratando el código que puso Martins y no me aparecen los botones en la pantalla, armé los 4 GUITextures y se los asocié a cada dirección en el Unity, los quiero usar para mover una cámara, le asocié el script a la cámara, que puedo estar haciendo mal? Desde ya muchas gracias!!
 
Hola disculpa se que hace tiempo solicitaste esta pregunta, pero quisiera saber si pudiste solucionarlo y si puedes ayudarme, saludos. 

Señores por respeto al foro debemos de aprender a realizar búsquedas en internet o leer documentación.
Si no cambiamos de actitud, no es que podamos hacer un videojuego, es que no nos ganamos ni el respeto:
 
eature=oembed" frameborder="0" allowfullscreen="true">

Se ha hablado bastante sobre la falta de costumbre de buscar previamente información sobre la consulta en otras partes...
 
 
Creo que deambula por ahí una idea de los Administradores del foro para adaptar la funcionalidad de la web mejor al tipo de contenido basado en pregunta/respuesta.
 
Como usuarios que somos, pidamos esos cambios, a ver si nos los pueden aplicar... 


Alguien podria colocar un ejemplo pero para la nueva GUI

Julio 05, 2015, 05:24:18 PM #42 Ultima modificación: Julio 05, 2015, 05:25:07 PM por mrpacogp
Pues tienes unos videos de la página oficial paso a paso excelentes. Seria redundante hacer algo aquí. Mirate lo y lo que no entiendas pregunta. https://unity3d.com/es/learn/tutorials/modules/beginner/live-training-archive/the-new-ui" rel="external nofollow">https://unity3d.com/es/learn/tutorials/modules/beginner/live-training-archive/the-new-ui
Enviado desde mi SM-N910F mediante Tapatalk

Podrias actualizar este control basico de botones a una version  mas alla de la de 4.5 , los gui textures ya no existen

Etiquetas: