Noticias

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

[Aporte] MultiTouch: Joysticks y Botones (Con sistema de Eventos)

Iniciado por kaito, Julio 05, 2015, 02:08:06 PM

Tema anterior - Siguiente tema
Julio 05, 2015, 02:08:06 PM Ultima modificación: Julio 05, 2015, 02:10:11 PM por kaito
Para poder aplicar varios Joysticks y botones en pantalla 1 clase base llamada MultiTouch:
 
Esta clase MultiTouch, detecta las pulsaciones en pantalla 1 sola vez por frame.
 
A continuación he creado dos derivadas de esta, una para los Joysticks (MultiTouchJoystick) y otra para los Botones(MultiTouchButton), que incluyen un sistema de Eventos que invoca unos métodos determinados.
 
MultiTouchJoystick: JoystickNone, JoystickEnter, JoystickStay, JoystickExit.
MultiTouchButton: TouchNone, TouchEnter, TouchStay, TouchExit.
 
El sistema de eventos incorpora 4 tipos de Estado: None, Enter, Stay, Exit.
 
____________________________________________________________
 
 
UTILIZACION:
 
Para poder utilizar estos dos tipos de controles(Joystick y Button) debemos crear derivadas de MultiTouchJoystick o MultiTouchButton.
 
Por ejemplo, si queremos crear dos botones A y B, creamos dos derivadas llamadas ButtonA y ButtonB de MultiTouchButton.
 
A continuación, para poder utilizar el sistema de eventos (None, Enter, Stay, Exit) creamos dentro de las clases ButtonA y ButtonB los métodos: TouchNone, TouchEnter, TouchStay y TouchExit necesarios.

using UnityEngine;
using System.Collections;
public class ButtonA : MultiTouchButton {
bool show = false;
 
void TouchEnter(){
   Debug.Log("EnterButtonA");
}
void TouchStay(){
   show = true;
}
void TouchExit(){
   show = false;
   Debug.Log("ExitButtonA");
}
void OnGUI(){
   if(show) GUILayout.Label("FireButtonA");
}
}

De modo similar, si queremos crear dos Joystick, creamos dos derivadas llamadas Joystick1 y Joystick2 de MultiTouchJoystick.
 
A continuación, para poder utilizar el sistema de eventos, creamos dentro de Joystick1 y Joystick2 los métodos: JoystickNone, JoystickEnter, JoystickStay, JoystickExit.

using UnityEngine;
using System.Collections;
public class JoystickA : MultiTouchJoystick {
public Rect rect;
void JoystickEnter(){
   
   Debug.Log("EnterJoystickA");
}

void JoystickExit(){
   
   Debug.Log("ExitJoystickA");
   
}

void OnGUI(){
   
   GUI.Label(this.rect, "JoystickA,  X: "+this.Horizontal+"   Y: "+this.Vertical);
   
}
}

VIDEO: http://dai.ly/x2wq3mu" rel="external nofollow">http://dai.ly/x2wq3mu
 
Enlace de https://app.box.com/s/bz4601kcb1so4csbo945w9hsziq8jin4" rel="external nofollow">descarga.

Etiquetas: