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

 

  • Related Posts

    Messi después del Mundial: la historia de un campeón que siguió intentando tocar el cielo

    Lionel Messi: la historia del niño que tuvo que perder muchas veces antes de tocar el cielo La historia de Lionel Messi no es solamente la historia de uno de…

    No fue el Mundial de Lamine Yamal: Rodri se convirtió en el verdadero líder de España

    España volvió a tocar el cielo y se proclamó campeona del mundo en 2026. Antes de comenzar el torneo, muchas miradas estaban puestas en Lamine Yamal. Por edad, talento, repercusión…

    One thought on “Unity Disparo 2D

    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

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

    Deja una respuesta

    You Missed

    Messi después del Mundial: la historia de un campeón que siguió intentando tocar el cielo

    • Por admin
    • julio 27, 2026
    • 11 views
    Messi después del Mundial: la historia de un campeón que siguió intentando tocar el cielo

    Argentina no perdió por un complot: España fue mejor y hay que aceptarlo

    • Por admin
    • julio 24, 2026
    • 23 views
    Argentina no perdió por un complot: España fue mejor y hay que aceptarlo

    No fue el Mundial de Lamine Yamal: Rodri se convirtió en el verdadero líder de España

    • Por admin
    • julio 23, 2026
    • 28 views
    No fue el Mundial de Lamine Yamal: Rodri se convirtió en el verdadero líder de España

    Jugadores que ganaron el Mundial antes de los 20 años: la lista histórica

    • Por admin
    • julio 22, 2026
    • 38 views
    Jugadores que ganaron el Mundial antes de los 20 años: la lista histórica

    Mbappé vs Lamine Yamal: ¿quién es mejor?

    • Por admin
    • julio 21, 2026
    • 47 views
    Mbappé vs Lamine Yamal: ¿quién es mejor?

    Lamine Yamal 2026: ¿El nuevo rey del fútbol mundial?

    • Por admin
    • julio 21, 2026
    • 36 views
    Lamine Yamal 2026: ¿El nuevo rey del fútbol mundial?