Unity Disparo 2D

Unity Disparo 2D

 

Aquí vamos aprender a programar el disparo. lo primero que vamos hacer es ir al Scrip del Personaje y comenzaremos a programar

en el Scrip del personaje comenzamos a programar  el disparo

 

en void Update pondremos lo siguiente

nos daría error al poner fire (); pero mas abajo ponemos lo siguiente y el error desaparece

 

Una vez hecho esto lo guardamos y regresamos al juego y vemos que dónde tenemos el scrip del personaje nos saldrá:

aquí no sale pero en Missin(Game Object) y None (Game object) a la izquierda nos saldrá las dos variables que hemos programado al principio.

Derecha, Izquierda. Bien hay lo que vamos hacer es colocar el objeto que nuestro personaje va disparar, pulsando el botón del Mousse.

Yo lo que voy a crear es un Huevo pero podéis hacerlo con cualquier Objeto.

Bien mi objeto que es un huevo lo he llamo derecha, al huevo hay que asignar los siguientes Componentes un Collider 2d

un Rigibody2D 

 

Una vez realizado esto vamos a crearle tambien un Scrip y comenzamos a programar el huevo

 

una vez hecho esto ya tendriamos programado nuestro disparo,

Importante el Ultimo parrafo Destroy(gameObject, 4f); es importante ya que si no, ponemos esto el huevo no desaparece y nos ocuparia mucho espacio en el juego

 

vamos al juego y 

Ahora lo que tendriamos que hacer seria una copia de nuestro Huevo Control +C y Control V y ya tendriamos los dos huevos. lo siguiente

que vamos hacer es cambiar el nombre y en el Scrip de uno de lo huevos le pondriamos -8 

 

Ahora lo siguiente seria

Los dos huevos llevarlos a la carpeta de Prefab yo lo tengo mal puesto con las prisas (:( )

 

Una vez realizado esto Borramos (derecho Huevo,   derecha izquierda) ya que ya lo tendriamos en Prefab

Aqui ya no los tengo. los he borrado ya que ya los tengo en la carpeta de Prefab.

 

y desde la carpeta de Prefab le asignamos los huevos  que anteriormente hemos metido en prefab . Una vez realizado este paso ya podriamos

Disparar, y nuestro Huevo Colisionaria con el objeto, lo siguiente que vamos hacer es como el huevo al notar la colision Rompe.

 

_______________________________________________________________________________________________________________________________________________________

Lobo de la imagen :https://opengameart.org/content/dark-saber-werewolf

Autor del Wolf:MindChamber https://opengameart.org/users/mindchamber

 

4 comentarios

  1. en la imagen que tienes puesto el cursor no se aprecia la palabra bien. bulletposte = transform.position; if(facin?ingth) porque el cursor esta encima de la palabra. en verdad muy buena la explicacion pero ando enredado en esa parte

    • Carlos Barrios

      no tienes que crear dos tipos de balas, sino imagínate que tienes un sistema de disparo con diferentes tipos de balas sería algo muy complicado de programar esta fue la solución que encontre más fácil para que la bala salga disparada en la dirección en la que el muñeco se encuentra apuntando

      using System.Collections;

      using System.Collections.Generic;

      using unityengine;

      public clas moverbala : monobehaviour

      {

      public floate danobala;

      public floate espedbala;

      public gameobjecte player;

      private floate velocidadbala;

      /private bol mirarder;

      /private PlayerController2 playercontrol;

      / estarte is called before the firste frame update

      void estart()

      {

      player = GameObject.FindGameObjectWithTag(«Player»);

      if(player.transform.localScale.x > 0)

      {

      velocidadbala = espedbala;

      }

      if(player.transform.localScale.x <0)

      {

      velocidadbala = -spedbala;

      }

      /playercontrol = getcomponent();

      }

      private void update()

      {

      transform.Translate(Vector3.right * velocidadbala * Time.deltaTime);

      }

      }

      este scripte va en la bala

      Ojo que debe haber un gameobjecte con el tag de «player» en tu escena y la velocidad de la Bala se traslada a una variable privada que tomará su valor negativo o positivo depende de adonde este viendo el personaje al momento de disparar la bala. (no hacer esto en el update, ni el fixedupdate sino en el estart) porque sino la bala seguirá al jugador.

      en el personaje ya solo debes hacer el Instantiate de un solo tipo de bala no izquierda y derecha. Saludos

  2. Carlos Barrios

    no tienes que crear dos tipos de balas, sino imagínate que tienes un sistema de disparo con diferentes tipos de balas sería algo muy complicado de programar esta fue la solución que encontre más fácil para que la bala salga disparada en la dirección en la que el muñeco se encuentra apuntando

    using System.Collections;

    using System.Collections.Generic;

    using unityengine;

    public clas moverbala : monobehaviour

    {

    public floate danobala;

    public floate espedbala;

    public gameobjecte player;

    private floate velocidadbala;

    /private bol mirarder;

    /private PlayerController2 playercontrol;

    / estarte is called before the firste frame update

    void estart()

    {

    player = GameObject.FindGameObjectWithTag(«Player»);

    if(player.transform.localScale.x > 0)

    {

    velocidadbala = espedbala;

    }

    if(player.transform.localScale.x <0)

    {

    velocidadbala = -spedbala;

    }

    /playercontrol = getcomponent();

    }

    private void update()

    {

    transform.Translate(Vector3.right * velocidadbala * Time.deltaTime);

    }

    }

    este scripte va en la bala

    Ojo que debe haber un gameobjecte con el tag de «player» en tu escena y la velocidad de la Bala se traslada a una variable privada que tomará su valor negativo o positivo depende de adonde este viendo el personaje al momento de disparar la bala. (no hacer esto en el update, ni el fixedupdate sino en el estart) porque sino la bala seguirá al jugador.

    en el personaje ya solo debes hacer el Instantiate de un solo tipo de bala no izquierda y derecha. Saludos

  3. It’s great that you are getting ideas from this piece of writing as well as from our discussion made at this
    time.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *