Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class mele_player : MonoBehaviour

{

    [SerializeField] private Transform controladorGolpe;

    [SerializeField] private float radioGolpe;

    [SerializeField] private float dañoGolpe;

    [SerializeField] private float tiempoEntreAtaques;

    [SerializeField] private float tiempoSiguienteAtaque;

    private Animator animator;

    public AudioClip sonidoespada1;

    public AudioClip sonidoespada2;

    public AudioClip sonidoespada3;

    public AudioClip sonidoespada4;

    private int controlador_sonido_espada = 0;

    private void Start()

    {

        animator = GetComponent<Animator>();    

    }

    // Update is called once per frame

    void Update()

    {

        if(tiempoSiguienteAtaque > 0) 

        { 

            tiempoSiguienteAtaque -= Time.deltaTime;

        }

        if (Input.GetKeyDown(KeyCode.Space) && tiempoSiguienteAtaque <=0)

        {

            Golpe();

            tiempoSiguienteAtaque = tiempoEntreAtaques;

        }

    }

    private void Golpe()

    {

        animator.SetTrigger("atacar");

        if (controlador_sonido_espada == 0)

        {

            AudioManager.Instance.ReproducirSonido(sonidoespada1);

            controlador_sonido_espada += 1;

        }

        else if (controlador_sonido_espada == 1)

        {

            AudioManager.Instance.ReproducirSonido(sonidoespada2);

            controlador_sonido_espada += 1;

        }

        else if (controlador_sonido_espada == 2)

        {

            AudioManager.Instance.ReproducirSonido(sonidoespada3);

            controlador_sonido_espada += 1;

        }

        else if (controlador_sonido_espada == 3)

        {

            AudioManager.Instance.ReproducirSonido(sonidoespada4);

            controlador_sonido_espada = 0;

        }

        

        

        Collider2D[] objetos = Physics2D.OverlapCircleAll(controladorGolpe.position, radioGolpe);

        foreach (Collider2D colisionador in objetos)

        {

            if (colisionador.CompareTag("enemigo"))

            {

                colisionador.transform.GetComponent<enemigo>().TomarDaño(dañoGolpe);

                

            }else if (colisionador.CompareTag("rey_helado"))

            {

                colisionador.transform.GetComponent<rey_helado>().TomarDaño(dañoGolpe);

            }

            else if (colisionador.CompareTag("rh_suit"))

            {

                colisionador.transform.GetComponent<rh_suit>().TomarDaño(dañoGolpe);

            }

        }

    }

    private void OnDrawGizmos()

    {

        Gizmos.color = Color.red;

        Gizmos.DrawWireSphere(controladorGolpe.position, radioGolpe);

    }

}

Este es, espero te ayude; tengo un canal de youtube:
https://www.youtube.com/channel/UCovupmyNdNORqgxG12huqnA?sub_confirmation=1
Estaré haciendo video de Unity tambien estoy pensando en tlv vender todo el codigo del juego, puede ser a un dolar jajasja; bueno espero que te sirva el script, estaría agradecido si te suscribieras :)