Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Gers2017 en Octubre 31, 2018, 04:57:21 AM

Título: Disparar donde se encuentra el puntero
Publicado por: Gers2017 en Octubre 31, 2018, 04:57:21 AM
Hola soy principiante y me preguntaba como podría hacer para que al detectar el click izquierdo del ratón la instancia se cree y se dirija a las coordenadas del cursor se detecto el click, también como podría hacer para que la rotación concuerde con la dirección de la instancia.
 
De momento había pensado en este código:
 



   
       
   
   
      if (Input.GetButtonDown("Fire1"))    {
                  Shoot();
      }
   
   
      void Shoot() {
          Instantiate(bulletPrefab, Firepoint.position, Firepoint.rotation);
      }
   
   
       
   

[/quote]
 
Firepoint representaría la posición del Cursor, aunque también pensaba que un objeto siguiera al cursos y este fuera Firepoint
 
 
 
 
 
(//%3CfileStore.core_Attachment%3E/monthly_2018_10/UNITY.thumb.jpg.d5ba18b88e173d47aaede88676c98b94.jpg)
 
(//%3CfileStore.core_Attachment%3E/monthly_2018_10/90436577_NoIgnoreplzno.thumb.jpg.7bdabc6d3302707ccd88f16a10a74b49.jpg)
Título: Disparar donde se encuentra el puntero
Publicado por: Igor en Noviembre 01, 2018, 11:42:18 AM
hola.
 
puedes hacerlo de varias formas... pero primero deverias saber la posicion de raton (cursor) en pantalla, ...y la posicion del player...
 
si a la posicion del raton (en pantalla) ...le restas la posicion del player (en pantalla)... te dara un vertor de direccion que apuntara hacia tu cursor...
 
puedes usarlo para definir la direccion de tu bala...  o puedes hayar el angulo del vector con "Mathf.Atan2(dist.x, dist.y)" y luego simplemente girar la bala...
 
 
 
por ejemplo:
 


Vector3 mousePos = Input.mousePosition;
Vector3 playerPos = Camera.main.WorldToScreenPoint(transform.position);
Vector3 direction = mousePos - playerPos;
float ang = Mathf.Atan2(direction.x, direction.y);
GameObject ba = (GameObject)Instantiate(bala, transform.position, transform.rotation);
ba.Rotate(0f,0f,ang);

 
 
 
Todo esto es suponiendo que es un juego 2d...
Título: Disparar donde se encuentra el puntero
Publicado por: Gers2017 en Noviembre 15, 2018, 06:22:15 PM
¡Gracias por la respuesta! si el juego es 2d, busque en la documentación pero terminé buscando respuesta aquí 
Título: Disparar donde se encuentra el puntero
Publicado por: FNP en Noviembre 16, 2018, 07:37:31 PM
¿Como vas a disparar? que te estoy viendo venir. Ni se te ocurra apuntar el proyectil a la dirección y hacer un AddForce o algo parecido, que os conozco. Mira el Raycast.