Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

[Ayuda] Script Arma

Iniciado por Johan, Noviembre 27, 2015, 03:58:09 PM

Tema anterior - Siguiente tema
Noviembre 27, 2015, 03:58:09 PM Ultima modificación: Noviembre 27, 2015, 03:59:28 PM por Johan
Ya que no soy buen programador seguí un videotutorial que me recomendaron para hacer que la arma de mi personaje dispare pero al terminarla me tira 2 errores, en la region de disparo le pongo un "else" y hay me tira 2 errores, luego se lo quito y no me tira nada, al momento de ponerselo sin el "else" no sirve, no aparece nada en la consola. ayuda, (soy nuevo en la comunidad, no se si esto va aqui), aqui el script y el video: Videotutorial using UnityEngine;
using System.Collections;public class Arma : MonoBehaviour 
{    [Header("Configuracion basica")]
    public string Nombre;     #region Gameplay
    void update()
    {
        if (Input.GetMouseButton(0)) Disparo();
        if (Input.GetKeyDown(KeyCode.R))Recarga ();
    }
    #endregion Gameplay    #region Disparo
    [Header("Configuracion de Disparo")]
    public float Cadencia = 1;
    public int Daño = 10;    private float CadenciaTemp;
    public void Disparo()
    {
        if(ArmaDisponible());
        {
            if(CadenciaTemp < Time.time)
            {
                MuncionDisponible--;
                Debug.Log("Disparo");
                CadenciaTemp = Time.time + Cadencia;
            }
        }
        else
        {
            if(Recargando)
            {
                Debug.Log("espera!, Estoy Recargando");
                return;
            }
            if(RecargaAutomatica)Recarga();
            Debug.Log("Heyy!! No tengo municion");
    }
}
    #endregion Disparo    #region Municion
    [Header("Configuracion de la Muncion")]
    public int MuncionDisponible = 5;
    public int MunicionMax = 10;
    public int CargadoresDisponibles = 2;
    public int CargadorMax = 5;
    public float TiempodeRecarga = 2;
    public bool RecargaAutomatica;
    private bool Recargando;      public void Recarga()
    {
        if(Recargando)StartCoroutine("recargafix"); 
    }    private IEnumerator recargafix()
    { 
        Recargando = true;        yield return new WaitForSeconds (TiempodeRecarga);        if(CargadoresDisponibles>0)
        {
            MuncionDisponible =  MunicionMax;
            CargadoresDisponibles--;
        }
        Recargando = false; 
    }    private bool ArmaDisponible()
    {
        return (MuncionDisponible > 0 && !Recargando);
    }
    #endregion Municion
}

[quote author=Johan" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34534" data-ipsquote-contentcommentid="124155">Ya que no soy buen programador seguí un videotutorial que me recomendaron para hacer que la arma de mi personaje dispare pero al terminarla me tira 2 errores, en la region de disparo le pongo un "else" y hay me tira 2 errores, luego se lo quito y no me tira nada, al momento de ponerselo sin el "else" no sirve, no aparece nada en la consola. ayuda, (soy nuevo en la comunidad, no se si esto va aqui), aqui el script y el video: 
">Videotutorial using UnityEngine;
using System.Collections;public class Arma : MonoBehaviour 
{    [Header("Configuracion basica")]
    public string Nombre;     #region Gameplay
    void update()
    {
        if (Input.GetMouseButton(0)) Disparo();
        if (Input.GetKeyDown(KeyCode.R))Recarga ();
    }
    #endregion Gameplay    #region Disparo
    [Header("Configuracion de Disparo")]
    public float Cadencia = 1;
    public int Daño = 10;    private float CadenciaTemp;
    public void Disparo()
    {
        if(ArmaDisponible())
        {
            if(CadenciaTemp < Time.time)
            {
                MuncionDisponible--;
                Debug.Log("Disparo");
                CadenciaTemp = Time.time + Cadencia;
            }
        }
        else
        {
            if(Recargando)
            {
                Debug.Log("espera!, Estoy Recargando");
                return;
            }
            if(RecargaAutomatica)Recarga();
            Debug.Log("Heyy!! No tengo municion");
    }
}
    #endregion Disparo    #region Municion
    [Header("Configuracion de la Muncion")]
    public int MuncionDisponible = 5;
    public int MunicionMax = 10;
    public int CargadoresDisponibles = 2;
    public int CargadorMax = 5;
    public float TiempodeRecarga = 2;
    public bool RecargaAutomatica;
    private bool Recargando;      public void Recarga()
    {
        if(Recargando)StartCoroutine("recargafix"); 
    }    private IEnumerator recargafix()
    { 
        Recargando = true;        yield return new WaitForSeconds (TiempodeRecarga);        if(CargadoresDisponibles>0)
        {
            MuncionDisponible =  MunicionMax;
            CargadoresDisponibles--;
        }
        Recargando = false; 
    }    private bool ArmaDisponible()
    {
        return (MuncionDisponible > 0 && !Recargando);
    }
    #endregion Municion
}[/quote]para empezar amigo, quitale el ";" (punto y coma ) de if(ArmaDisponible());  tiene que estar asi if(ArmaDisponible())  ya con eso dejaras el else y no te debe de marcar error, OJO no he testeado el codigo nomas le acabo de hacer una corrida rapida de "papel" .saludos :)

Etiquetas: