Unity enemigos disparan

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.

Deja un comentario

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