Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Kari

#1
Scripting / Disparo con ángulos
Noviembre 22, 2019, 09:21:25 PM
Cita de: Deaymon date=1574426338Perdón por salirme del tema pero, ¿la línea "transform.up = direction" de verdad funciona? xD ¿La nave sigue el mouse con ese método? Suena como una alternativa bastante peculiar.
   
   
      Volviendo al tema, para hacer que la bala se mueva en una cierta dirección, lo único que te faltaría sería añadir al prefab de la bala el componente Rigidbody (o Rigidbody2D si usas Physics2D) y un script a la bala tipo:
   
   

// Aquí asignas el Rigidbody2D del propio prefab
public Rigidbody2D rb;
public float velocidadDisparo;
private void Awake() {
rb.velocity = transform.up * velocidadDisparo // a lo mejor en lugar de transform.up tiene que ser transform.forward o transform.right dependiendo de cómo quieras orientar el objeto
}

   
      La bala se moverá constantemente con la velocidad y dirección que le asignes hasta que choque con algo o se le aplique alguna fuerza.
   
   
      Otra alternativa sería ponerle un Update() que haga que se mueva a cada frame en la dirección que veas, pero no estoy seguro de cómo afectará eso a las colisiones.
   


Gracias! Si me funcionó! Solamente que le acertaste con lo del mouse, no lo sigue con mucha exactitud. Ya vere como lo arreglo. :)
#2
Scripting / Disparo con ángulos
Noviembre 22, 2019, 04:35:50 AM
Hola, he estado  trabajando en una nave que rota su posición con el mouse, y debe disparar con el click.
 
Este es el código del mouse:
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SeguirMouse : MonoBehaviour {
void Start () {
   
}

void Update () {
   Seguir ();
}
public void Seguir() {
   Vector3 mousePos = Input.mousePosition;
   mousePos = Camera.main.ScreenToWorldPoint (mousePos);
   Vector2 direction = new Vector2 (
                          mousePos.x - transform.position.x,
                          mousePos.y - transform.position.y
                       );
   transform.up = direction;
}

 
Y este el de la instation de las balas
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shoot : MonoBehaviour {
public GameObject bulletPrefab;
public Transform bulletSpawner;
public void PlayerShooting(){
   if(Input.GetButtonDown ("Fire1")){
      Instantiate (bulletPrefab,new Vector2(bulletSpawner.position.x,bulletSpawner.position.y),bulletSpawner.rotation);
   }
}

void Update () {
   PlayerShooting ();
}
}

 
¿Saben si hay algún modo de que dispare con un velocidad dada en la dirección que el mouse apunta? He estado buscando tutoriales y ayuda pero solo he encontrado para disparar con una direccion fija. Gracias, los quiero muxo.
#3
Presentaciones / Hola bbs
Noviembre 22, 2019, 04:29:30 AM
Me acabo de registrar aqui. Ignoren esto.