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

    La prensa creó al nuevo Messi y ahora castiga a Lamine Yamal por no serlo

    Lamine Yamal no es Messi, ni Cristiano Ronaldo, ni Mbappé: el problema no es su fútbol, sino las expectativas que han creado sobre él Hoy parece que le toca recibir…

    Nadie apostaba por el Real Madrid, pero Mourinho volvió a dar una lección de fútbol

    El Real Madrid vuelve a demostrar que nunca se le puede dar por muerto, Mourinho ganó la batalla al Barcelona Ayer el Real Madrid volvió a demostrar por qué es…

    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

    La prensa creó al nuevo Messi y ahora castiga a Lamine Yamal por no serlo

    • Por admin
    • octubre 26, 2026
    • 40 views
    La prensa creó al nuevo Messi y ahora castiga a Lamine Yamal por no serlo

    Nadie apostaba por el Real Madrid, pero Mourinho volvió a dar una lección de fútbol

    • Por admin
    • octubre 26, 2026
    • 46 views
    Nadie apostaba por el Real Madrid, pero Mourinho volvió a dar una lección de fútbol

    El Barça juega mejor, pero el Real Madrid de Mourinho nunca debe darse por muerto

    • Por admin
    • octubre 24, 2026
    • 33 views
    El Barça juega mejor, pero el Real Madrid de Mourinho nunca debe darse por muerto

    Real Madrid y Barcelona ganan entre polémicas: ¿es esta la Liga que queremos?

    • Por admin
    • octubre 20, 2026
    • 50 views
    Real Madrid y Barcelona ganan entre polémicas: ¿es esta la Liga que queremos?

    El Real Madrid remonta a la Roma, pero sigue sin convencer: ¿tiene Vinícius los días contados?

    • Por admin
    • octubre 15, 2026
    • 82 views
    El Real Madrid remonta a la Roma, pero sigue sin convencer: ¿tiene Vinícius los días contados?

    El Barça está por encima de Messi, señor Gaspart, pero su historia más gloriosa lleva su nombre

    • Por admin
    • octubre 13, 2026
    • 60 views
    El Barça está por encima de Messi, señor Gaspart, pero su historia más gloriosa lleva su nombre