Disparar al enemigo

Unity Disparar al enemigo, aquí vamos aprender a disparar al enemigo aunque en el anterior tutorial ya lo enseñe, y a eliminar al enemigo, de una manera muy sencilla

Aquí tenemos nuestro juego, y con el mouse en este caso será con el dedo lanzándole un proyectil  eliminaríamos al enemigo que en este caso el el muñeco rojo

Una vez nuestro objeto colisioné con el enemigo, este dará volteretas y se eliminara. Así que vamos a empezar

Vamos a nuestro cámara y hay tenemos un script que os pondré en la descripción

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class disparodesdelacamara : MonoBehaviour
{

    private Vector3 target;

    private Vector3 mousePos;
    private Vector3 objectPos;
    public GameObject disparo;


    // Use this for initialization
    void Start()
    {
        Cursor.visible = true;
    }

    // Update is called once per frame
    void Update()
    {



        if (Input.GetButtonDown("Fire1"))
        {
            mousePos = Input.mousePosition;
            mousePos.z = 2.0f;
            objectPos = Camera.main.ScreenToWorldPoint(mousePos);
            Instantiate(disparo, objectPos, Quaternion.identity);

        }
    }
}

Aquí tendremos el script de la cámara

este seria el script de la cámara, donde pone «Disparo» hay pondríamos la bola negra con ojos, ahora a la bola negra con ojos vamos a crear un script que seria una muy simple que desapareciese pasado un segundo , para que no ocupe espacio una vez el juego se  reproduce

aquí tenemos  a la bola con ojos tiene un script que ahora pondré en la descripción, un Box Collider 2D con el Is Trigger activado , y una Tag llamado dos

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class destruirobjeto : MonoBehaviour
{
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        Destroy(gameObject, 1f);

    }
}

este seria el script de la bola, que permanecería en la carpeta de Prefab, ahora vamos al script del enemigo

y le creamos el Script que tenemos en pantalla y entre los dos paréntesis ponemos «dos» con esto nuestro personaje se eliminaría, pero no realizaría ninguna animación. importante que nuestro personaje tenga el rigbody2d con la gravedad 0. ahora creamos dos animaciones una de caminar y la otra ELIMINAR, que  será la que realice cuando le toque nuestro proyectil  . así que vamos a crear dos animaciones a nuestro enemigo.

 

Aquí tenemos a nuestras dos animaciones, la de caminar es la principal.

y ahora en el script del enemigo creamos lo siguiente

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class enemigo : MonoBehaviour
{ /// </summary>
    public float moveSpeed = 3f;
    private Animator animactionenemigo;
  
    public bool deatr;
    Transform lefWayPoint, rigWayPOint;
    Vector3 localScale;
    bool movinRIght = true;
    Rigidbody2D rb;

    void Start()
    {
        animactionenemigo = GetComponent<Animator>();
     
        localScale = transform.localScale;
        rb = GetComponent<Rigidbody2D>();
        lefWayPoint = GameObject.Find("LefWaupoin").GetComponent<Transform>();
        rigWayPOint = GameObject.Find("RigfWaupoin").GetComponent<Transform>();

    }
    void Update()
    {


        if (transform.position.x > rigWayPOint.position.x)
            movinRIght = false;
        if (transform.position.x < lefWayPoint.position.x)
            movinRIght = true;

        if (movinRIght)
            movinRIg();
        else
            movelef();


    }


    void movinRIg()
    {

        movinRIght = true;
        localScale.x = 1;
        transform.localScale = localScale;
        rb.velocity = new Vector2(localScale.x * moveSpeed, rb.velocity.y);
    }

    void movelef()
    {
        movinRIght = false;
        localScale.x = -1;
        transform.localScale = localScale;
        rb.velocity = new Vector2(localScale.x * moveSpeed, rb.velocity.y);


    }


    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.tag == "dos")
        {

            animactionenemigo.Play("ELIMINAR");
            Destroy(gameObject, 0.9f);

        }

    }


}

 

Un comentario

  1. I do not even know how I ended up here, but I thought this post was good.
    I don’t know who you are but definitely you are going to a famous blogger
    if you are not already 😉 Cheers!

Deja un comentario

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