hola , tengo un problema y es que estoy intentando implementar el joystick virtual video del joystick (//%5Byoutube%5Dhttps://www.youtube.com/watch?v=6kGxSS66Ba8%5B/youtube%5D)
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
Te 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 (http://unitydoc.blogspot.com.ar/2016/03/joystick-virtual-todas-las-plataformas.html)
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 (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..