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ú

Mensajes - Joako

#1
Claro yo le intente hacer un ragdoll pero en la facultad me exigen diseñar yo el personaje desde cero usando 3dmax y poniendole esqueleto del mismo programa e importar eso a unity, al aplicarle el ragdoll se me rompia la textura y hasta se movia medio loco, no se si sera por el esqueleto de 3Dmax, vere cual es la opcion mas sencilla, ahora me concentrare en la guardia, muchas gracias y disculpa las molestias, despues te subo un video para que veas como queda
#2
entiendo mas o menos lo que dices, igual a futuro pensaba sacar la funcion de ahi, habia echo todo rapido para una vez que funcione pulirlo pero veo que eso tambien me jugo en contra jajaja intentare plasmar a codigo todo lo que me has dicho, muchas gracias!Adngel eres un genio!!No sabia que podia poner eventos en las animacions. Una pregunta más, como diferenciarias un golpe bajo de uno alto?? ya que siempre me esta sumando lo mismo ahora y la idea es que sume mas puntos cuando impacta un golpe alto, pero si se complica mucho lo dejo asi ya que con esto puedo aprobar tranquilamente jajaja ahora tambien intentare hacer el tema de la guardia con la misma idea que active un objeto cuando se esta cubriendo. Y muchisimas gracias por la ayuda!!
#3
Bien, hice lo que me dijiste y sigue funcionando mal, una vez que colisiona pone al bool en true y nunca vuelve a false. Deberia resolverlo de algun otro metodo, alguna idea? y gracias por la respuesta
#4
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.