Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: #Patow en Julio 12, 2018, 02:49:11 PM

Título: Mover brazo con Mouse 2d
Publicado por: #Patow en Julio 12, 2018, 02:49:11 PM
Buenas amigos, lo que quiero saber es un script de un jugador sea cual sea el modelo que el brazo esté configurado para seguir el mouse y disparar si es necesario, etcétera.
 
Para que tengan una idea, algo como esto: 
 


   
eature=oembed" width="480">

 
 
 
 
 
Ese tutorial es de flash ya es viejo y quiero saber como hacer para llevar un script parecido a unity.-
Título: Mover brazo con Mouse 2d
Publicado por: #Patow en Julio 12, 2018, 06:49:37 PM


   
eature=oembed" width="480">

 
Aquí un ejemplo claro de lo que quiero lograr.
Título: Mover brazo con Mouse 2d
Publicado por: pioj en Julio 13, 2018, 11:18:18 AM
@#Patow, te he activado la cuenta. Preséntate en el foro adecuado, pls, que todavía no lo has hecho desde que entraste...
Título: Mover brazo con Mouse 2d
Publicado por: Igor en Julio 13, 2018, 12:59:43 PM
hola, el raton se mueve con el brazo... o mas bien con la mano... la derecha en mi caso... XD
 
tienes varias formas de saver donde esta el mouse.... porejemplo mousePosition, luego le restas la mitad de tu screen size... y te dara la posicion del raton respecto del centro de la pantalla... y luego usas "aTan2" para conseguir el angulo.... y le mueves el brazo a tu muñeco en ese angulo...
 

vector3 mousePos = Input.mousePosition; //posicion del raton
mousePos -= new Vector3(Screen.width, Screen.height, 0); //posicion respecto al centro
float angle = Mathf.Atan2(mousePos.x, -mousePos.y); //angulo que forma

 
 
 
otra cosa, te aconsejo que te presentes devidamente en la seccion correspondiente para cumplir las normas del foro...
 
que aqui tenemos un addministrador que no dudara en contratar un sicario si es necesario...
Título: Mover brazo con Mouse 2d
Publicado por: #Patow en Julio 17, 2018, 09:24:18 PM
Ya me presentaré disculpen. 
 
 
 
Cita de: Igor date=1531479583hola, el raton se mueve con el brazo... o mas bien con la mano... la derecha en mi caso... XD
   
   
      tienes varias formas de saver donde esta el mouse.... porejemplo mousePosition, luego le restas la mitad de tu screen size... y te dara la posicion del raton respecto del centro de la pantalla... y luego usas "aTan2" para conseguir el angulo.... y le mueves el brazo a tu muñeco en ese angulo...
   
   

vector3 mousePos = Input.mousePosition; //posicion del raton
mousePos -= new Vector3(Screen.width, Screen.height, 0); //posicion respecto al centro
float angle = Mathf.Atan2(mousePos.x, -mousePos.y); //angulo que forma

   
       
   
   
      otra cosa, te aconsejo que te presentes devidamente en la seccion correspondiente para cumplir las normas del foro...
   
   
      que aqui tenemos un addministrador que no dudara en contratar un sicario si es necesario...
   


Respecto a esto, tengo que hacer que el gameobjet del brazo haga lo que le pido. Suponiendo que el gameobjet se llamará jd_brazo, como hago que el mismo tome esas posiciones, intentaré ahora hacerlo por mi cuenta también por si me sale, gracias.
Título: Mover brazo con Mouse 2d
Publicado por: #Patow en Julio 18, 2018, 08:39:11 PM
Otra duda, quiero rotar un jugador 2d, visto desde arriba. Que el mismo rote en dirección al mouse. Si alguien me puede pasar un script, gracias.
Título: Mover brazo con Mouse 2d
Publicado por: Jocyf en Julio 20, 2018, 02:09:01 AM
Cita de: #Patow date=1531939151Otra duda, quiero rotar un jugador 2d, visto desde arriba. Que el mismo rote en dirección al mouse. Si alguien me puede pasar un script, gracias.
   


using UnityEngine;
 using System.Collections;
 
 public class rotateToMouse : MonoBehaviour {
 
 
 
     // Update is called once per frame
     void Update ()
     {
         Vector2 mouse = Camera.main.ScreenToViewportPoint(Input.mousePosition);        //Mouse position
         Vector3 objpos = Camera.main.WorldToViewportPoint (transform.position);        //Object position on screen
         Vector2 relobjpos = new Vector2(objpos.x - 0.5f,objpos.y - 0.5f);            //Set coordinates relative to object
         Vector2 relmousepos = new Vector2 (mouse.x - 0.5f,mouse.y - 0.5f) - relobjpos;
         float angle = Vector2.Angle (Vector2.up, relmousepos);    //Angle calculation
         if (relmousepos.x > 0)
             angle = 360-angle;
         Quaternion quat = Quaternion.identity;
         quat.eulerAngles = new Vector3(0,0,angle); //Changing angle
         transform.rotation = quat;
     }
 }

 
 
 
 
Título: Mover brazo con Mouse 2d
Publicado por: #Patow en Julio 25, 2018, 09:49:25 PM
Cita de: Jocyf date=1532045341

using UnityEngine;
 using System.Collections;
 
 public class rotateToMouse : MonoBehaviour {
 
 
 
     // Update is called once per frame
     void Update ()
     {
         Vector2 mouse = Camera.main.ScreenToViewportPoint(Input.mousePosition);        //Mouse position
         Vector3 objpos = Camera.main.WorldToViewportPoint (transform.position);        //Object position on screen
         Vector2 relobjpos = new Vector2(objpos.x - 0.5f,objpos.y - 0.5f);            //Set coordinates relative to object
         Vector2 relmousepos = new Vector2 (mouse.x - 0.5f,mouse.y - 0.5f) - relobjpos;
         float angle = Vector2.Angle (Vector2.up, relmousepos);    //Angle calculation
         if (relmousepos.x > 0)
             angle = 360-angle;
         Quaternion quat = Quaternion.identity;
         quat.eulerAngles = new Vector3(0,0,angle); //Changing angle
         transform.rotation = quat;
     }
 }

   
       
   
   
       
   


Muchas gracias Jocyf!!