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 hizo un Mundial increíble con 39 años, pero para mí no merece el Balón de Oro 2026.

    Messi y el Balón de Oro 2026 un Mundial increíble a los 39 años, pero para mí no es suficiente Hablar de Lionel Messi y el Balón de Oro, creo…

    Mourinho ha vuelto, pero el Real Madrid no: muchas estrellas, demasiado ego y muy poco equipo

    Mourinho y su segunda etapa en el Real Madrid: tengo muchas dudas La segunda etapa de Mourinho en el Real Madrid me genera muchas dudas. Yo soy de esas personas…

    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 hizo un Mundial increíble con 39 años, pero para mí no merece el Balón de Oro 2026.

    • Por admin
    • septiembre 29, 2026
    • 2 views
    Messi hizo un Mundial increíble con 39 años, pero para mí no merece el Balón de Oro 2026.

    Mourinho ha vuelto, pero el Real Madrid no: muchas estrellas, demasiado ego y muy poco equipo

    • Por admin
    • septiembre 26, 2026
    • 13 views
    Mourinho ha vuelto, pero el Real Madrid no: muchas estrellas, demasiado ego y muy poco equipo

    Lamine vs Kane: ganar el Mundial no significa haber sido el mejor

    • Por admin
    • septiembre 26, 2026
    • 22 views
    Lamine vs Kane: ganar el Mundial no significa haber sido el mejor

    Sí, quéjate del árbitro… pero primero juega al fútbol, el problema del Real Madrid va más allá del VAR.

    • Por admin
    • septiembre 22, 2026
    • 24 views
    Sí, quéjate del árbitro… pero primero juega al fútbol, el problema del Real Madrid va más allá del VAR.

    Raphinha tira del Barça, Lamine se lleva las portadas: ¿rendimiento o marketing?

    • Por admin
    • septiembre 20, 2026
    • 49 views
    Raphinha tira del Barça, Lamine se lleva las portadas: ¿rendimiento o marketing?

    Del Messi-Cristiano al “yo merezco el Balón de Oro”: ¿en qué momento cambió tanto el fútbol?

    • Por admin
    • septiembre 19, 2026
    • 38 views
    Del Messi-Cristiano al “yo merezco el Balón de Oro”: ¿en qué momento cambió tanto el fútbol?