Jump to content
UnitySpain
Sign in to follow this  
#Patow

Mover brazo con Mouse 2d

Recommended Posts

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: 

 

 

Ese tutorial es de flash ya es viejo y quiero saber como hacer para llevar un script parecido a unity.-

Share this post


Link to post
Share on other sites

@#Patow, te he activado la cuenta. Preséntate en el foro adecuado, pls, que todavía no lo has hecho desde que entraste...

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

Ya me presentaré disculpen. 

 

On 13/7/2018 at 7:59, Igor said:

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...

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
On 18/7/2018 at 20:39, #Patow said:

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.

 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;
     }
 }

 

 

Share this post


Link to post
Share on other sites
On 19/7/2018 at 21:09, Jocyf said:

 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!! 

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...