esta es la parte cuarta del juego dónde los enemigos dispararan
vamos a poner objetos en mi caso serán helicópteros. que disparen a nuestros personajes aun no vamos hacer nada solo vamos a dar movimiento a nuestros enemigos que son helicópteros y que disparen esferas , aunque cambiare el objeto ya que he puesto una esfera como ejemplo. lo primero que vamos hacer sera poner nuestro objeto en la escena que sera un helicóptero
Hay tenemos nuestro helicóptero que sera el que patrulla la zona lo podría poner que la patrulla que fuese aleatoria pero solo voy a poner que vaya hacia la derecha y izquierda
ahora le voy a crear un script Al que llamare Patrulla aquí os dejare el script del helicóptero
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Patruya : MonoBehaviour { private float velocidadad, paso; private Vector3 obetivo; // Start is called before the first frame update void Start() { velocidadad = 1.0f; paso = velocidadad * Time.deltaTime; obetivo = new Vector3(9f, 1f, 0f); } // Update is called once per frame void Update() { if (transform.position == obetivo) { obetivo = new Vector3(-obetivo.x, obetivo.y, obetivo.z); transform.Rotate(0, 180, 0); } else { transform.position = Vector3.MoveTowards(transform.position, obetivo, paso); transform.Rotate(0, 0, 0 * Time.deltaTime); } } }
ahora lo que vamos a crear es un objeto hijo del helicóptero
un cubo que le vamos a poner justo debajo del helicóptero
así quedaria
Ahora os pondré el Script aquí como veis tengo 2 pero son los dos iguales.
public Transform player; public float range = 4f; public float bulletImpulse= 0.1f; private bool onRange= false; public Rigidbody projectile; void Start(){ float rand = Random.Range (1.0f, 2.0f); InvokeRepeating("Shoot", 2, rand); } void Shoot(){ if (onRange){ Rigidbody bullet = (Rigidbody)Instantiate(projectile, transform.position + transform.forward, transform.rotation); bullet.AddForce(transform.forward*bulletImpulse, ForceMode.Impulse); Destroy (bullet.gameObject, 2); } } void Update() { onRange = Vector3.Distance(transform.position, player.position)<range; if (onRange) transform.LookAt(player); } }
Y ya tendríamos nuestros helicóptero. Aunque aun quedan muchas cosas por hacer.