Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Joako

#1
Buenas, la cosa es asi, me queda una sola materia en la facultad para recibirme y esa materia llamada multimedia para aprobar necesito entregar un juego echo por mi mismo en unity, vengo bastante bien ya tengo el mapa el personaje y todo pero no me marca bien los golpes. Obviamente en la facultad no exigen un super juego pero la idea es mas o menos asi: Son dos artistas marciales que si gopean en la cara quiero que sume 3 puntos y si golpea en el torso quiero que sume 1 punto, de programacion se bastante pero no conosco las funciones de unity a la perfeccion y me he trabado, es obvio que mis scrips estan mal ya que no funciona como deberia jajaja pero aqui los dejo para que los vean, y diganme como lo harian ustedes. Desde ya muchas gracias. Controlpublic var velocidad = 10.0F;
public var velocidadA = 10.0F;
public var rotacion = 100.0F;
private var anim : Animator;
private var col : CapsuleCollider;
public var ataque : Ataque;
public static var puntos : int = 0;
function Start () {
    
        // initialising reference variables
        anim = GetComponent("Animator");                      
        col = GetComponent("CapsuleCollider");    
         
}function FixedUpdate () {
       
        //movimiento con rotacion
        transform.Translate( 0, 0, Input.GetAxis("Vertical") * velocidad * Time.deltaTime);
        transform.Rotate(0, Input.GetAxis("Horizontal") * rotacion * Time.deltaTime, 0);        //movimiento sin rotacion
        //transform.Translate( 0, 0, Input.GetAxis("Vertical") * velocidad * Time.deltaTime);
        //transform.Translate(Input.GetAxis("Horizontal") * velocidad * Time.deltaTime, 0, 0);        if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.A)){
            anim.Play("CaminarI");
            //mover();
        }else if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.D)){
            anim.Play("CaminarD");
            //mover();
        }else if(Input.GetKey(KeyCode.S) && Input.GetKey(KeyCode.A)){
            anim.Play("CaminarI");
            //mover();
        }else if(Input.GetKey(KeyCode.S) && Input.GetKey(KeyCode.D)){
            anim.Play("CaminarD");
            //mover();
        }else if(Input.GetKey(KeyCode.W)){
            anim.Play("Caminar");
            //mover();
        }else if(Input.GetKey(KeyCode.S)){
            anim.Play("CaminarA");
            //mover();
        }else if(Input.GetKey(KeyCode.A)){
            anim.Play("CaminarI");
            //mover();
        }else if(Input.GetKey(KeyCode.D)){
            anim.Play("CaminarD");
            //mover();
        }        if(Input.GetKeyDown(KeyCode.Keypad4)){
            anim.Play("GolpeIzqAlto");
            ataque.ataque("alto");
        }
        if(Input.GetKeyDown(KeyCode.Keypad5)){
            anim.Play("GolpeDerAlto");
            ataque.ataque("alto");
        }
        if(Input.GetKeyDown(KeyCode.Keypad1)){
            anim.Play("GolpeIzqBajo");
            ataque.ataque("bajo");
        }
        if(Input.GetKeyDown(KeyCode.Keypad2)){
            anim.Play("GolpeDerBajo");
            ataque.ataque("bajo");
        }
        if(Input.GetKeyDown(KeyCode.Keypad6)){
            anim.Play("GolpeLargo");
            ataque.ataque("alto");
        }
        if(Input.GetKeyDown(KeyCode.Keypad3)){
            anim.Play("Patada");
            ataque.ataque("bajo");
        }        if(Input.GetKey(KeyCode.Keypad7)){
            anim.SetBool("Guardia", true);
            anim.Play("GuardiaAlta");
        }else if(Input.GetKey(KeyCode.Keypad8)){
            anim.SetBool("Guardia", true);
            anim.Play("GuardiaBaja");
        }else{
            anim.SetBool("Guardia", false);
        }        if(Input.GetKeyDown(KeyCode.O)){
            anim.Play("Victoria");
        }
        if(Input.GetKeyDown(KeyCode.P)){
            anim.Play("Derrota");
        }
        
}este scrip controla al personaje ya se que tiene muchos errores pero primero quiero que anden bien los golpes para pulirlo. Ataquepublic var control : Control;
public var colision : Colision;function Start () {
    
}function Update () {}function ataque(Tipo : String){
    
    if(Tipo=="alto" && colision.bool){
        control.puntos = control.puntos + 3;
    }else if(Tipo=="bajo" && colision.bool){
        control.puntos = control.puntos + 1;
    }
}este solo tiene la funcion ataque Colision public var desplazamiento : float = -0.4;
public var control : Control;
var bool = false;//var golpeIzqAlto : int = Animator.StringToHash("Base Layer.GolpeIzqAlto");
//var anim : Animator;
//var estado : AnimatorStateInfo;function Start () {
    }function Update () {
    
    
    
}
function OnTriggerEnter(Enemigo : Collider){    if(Enemigo.gameObject.name=="Personaje 1"){
        bool = true;
        Debug.Log("Hit =" +control.puntos);
    }
    
}function OnTriggerStay(Enemigo : Collider){    if(Enemigo.gameObject.name=="Personaje 1"){
        bool = true;
        Enemigo.transform.Translate(0,0, desplazamiento);
        Debug.Log("Hit =" +control.puntos);
    }
    
}function OnTriggerExit(Enemigo : Collider){    if(Enemigo.gameObject.name=="Personaje 1"){
        bool = false;
        Debug.Log("Hit =" +control.puntos);
    }
    
} Este es lo que controla las colisiones que seguramente pienso que aca debe estar el error.El personaje tiene objetos en las manos obviamentes invisibles y con el trigger activado que es lo que colisiona contra el otro personaje y dispara la funcion. La cuetsion es que no marca siempre el golpe, solo sale a veces y no siempre que coliciona sumando realmente cuando le da la gana, no se muy buen el comportamiento de esas funciones creo que deberia funcionar pero no lo hace, diganme como lo harian ustedes o que le coregirian a esto que hice rapido y desprolijamente jajaja. Muchas gracais y disculpen als molestias.