Noticias

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

Joystick virtual problema

Iniciado por minirovi, Marzo 29, 2017, 04:21:15 PM

Tema anterior - Siguiente tema
Marzo 29, 2017, 04:21:15 PM Ultima modificación: Marzo 29, 2017, 11:55:32 PM por pioj
hola , tengo un problema y es que estoy intentando implementar el joystick virtual video del joystick
 
he seguido los pasos de pi a pa.. todo todo lo tengo exactamente igual .. pero cuando le doy al joystick con el raton desde el unity ,para que valla mi coche para delante no funciona , el coche solo me funciona con W,S,A,D , pero moviendo el joystick no se mueve, y nose si esque hay algo malo en el script de funcionamiento del coche que no deja que valla el joystick o es de las scripts del joystick ,nose si en el movil me va , ya que no e sacado la apk del juego porque pienso que no ira, decirme si hay posibilidades de que valla aunque no valla en unity , soy nuevo en esto y de momento me entero poquito jaja ,dejo aqui los 2 Scripts del joystick que segun el chaval del video , es los que se tienen que hacer, el abre un archivo  script que se llama motor y ya tiene un trozo escrito , y solo añade unas 3 lineas o 4 y yo e copiado el 100% de su script "motor" para ver si era asi y nada.. tanto el "motor " como el Jostick , tengo todo bien.
 
El Game 
 



   
      using UnityEngine;
      using System.Collections;
   
   
      public class Motor : MonoBehaviour 
      {
          public float moveSpeed = 5.0f;
          public float drag = 0.5f;
          public float terminalRotationSpeed = 25.0f;
          public VirtualJoystick moveJoystick;
   
   
          private Rigidbody controller;
          private Transform camTransform;
   
   
          private void Start()
          {
   
   
              controller = GetComponent<Rigidbody> ();
              controller.maxAngularVelocity = terminalRotationSpeed;
              controller.drag = drag;
   
   
              camTransform = Camera.main.transform;
          }
   
   
          private void Update ()
          {
              Vector3 dir = Vector3.zero;
   
   
              dir.x = Input.GetAxis ("Horizontal");
              dir.z = Input.GetAxis ("Vertical");
   
   
              if (dir.magnitude > 1)
                  dir.Normalize ();
   
   
              if (moveJoystick.InputDirection != Vector3.zero
              {
                  dir = moveJoystick.InputDirection;
              }
              
              //Rotate our direction vector with camera
              Vector3 rotateDir = camTransform.TransformDirection (dir);
              rotateDir = new Vector3 (rotateDir.x, 0, rotateDir.z);
              rotateDir = rotateDir.normalized * dir.magnitude;
   
   
          }
      }
       
   

[/quote]
 
el virtual joystick
 



   
      using UnityEngine.EventSystems;
      using System.Collections;
   
   
      public class VirtualJoystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler
      {
          private Image bgImg;
          private Image joystickImg;
   
   
          public Vector3 InputDirection{ set; get; }
   
   
          private void Start()
          {
              bgImg = GetComponent<Image> ();
              joystickImg = transform.GetChild(0).GetComponent<Image> ();
              InputDirection = Vector3.zero;
          }
   
   
          public virtual void OnDrag(PointerEventData ped)
          {
              Vector2 pos = Vector2.zero;
              if (RectTransformUtility.ScreenPointToLocalPointInRectangle
                  (bgImg.rectTransform,
                     ped.position,
                     ped.pressEventCamera,
                     out pos)) 
              {
                  pos.x = (pos.x / bgImg.rectTransform.sizeDelta.x);
                  pos.y = (pos.y / bgImg.rectTransform.sizeDelta.y);
   
   
                  float x = (bgImg.rectTransform.pivot.x == 1) ? pos.x * 2 + 1 : pos.x * 2 - 1;
                  float y = (bgImg.rectTransform.pivot.y == 1) ? pos.y * 2 + 1 : pos.y * 2 - 1;
   
   
                  InputDirection = new Vector3 (x, 0, y);
                  InputDirection = (InputDirection.magnitude > 1) ? InputDirection.normalized : InputDirection;
   
   
                  joystickImg.rectTransform.anc***dPosition =
                      new Vector3 (InputDirection.x * (bgImg.rectTransform.sizeDelta.x / 3)
                          , InputDirection.z * (bgImg.rectTransform.sizeDelta.y / 3));
              }
          }
   
   
          public virtual void OnPointerDown(PointerEventData ped)
          {
              OnDrag (ped);
          }
   
   
          public virtual void OnPointerUp(PointerEventData ped)
          {
              InputDirection = Vector3.zero;
              joystickImg.rectTransform.anc***dPosition = Vector3.zero;
          }
   
   
      }
   

[/quote]
 
Os agradeceria mucho la ayuda , ya que llevo 3 dias solo en el joystick y alfinal tengo que recurrir a que me ayuden porque sino me vuelvo loco...
 
muchas gracias y lo siento por tanta biblia jaja 


Marzo 29, 2017, 11:32:29 PM #2 Ultima modificación: Marzo 30, 2017, 12:03:16 AM por minirovi
Cita de: francoe1 date=1490802149Te dejo un link a mi blog donde tenes una herramienta muy útil para crear un Joystick Virtual.
   
   
      http://unitydoc.blogspot.com.ar/2016/03/joystick-virtual-todas-las-plataformas.html 
   
   
       
   


hola muchisimas gracias , me sigue sin funcionar como si no tubiera la funcion puesta
 
Lo e puesto , le e dado al play para probarlo,pero nada
 
Estoy haciendo un juego de coches y nose si esque le faltara algo a mi coche.. o tengo algo en el script de los colliders o algo que hace que no valla el joystick.. pff soy nuevo en esto y estoy desesperado..

Etiquetas: