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); } } }
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!