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 - seimus

#1
Arte / Combinar Animaciones
Julio 15, 2019, 11:39:16 AM
Buenas!! Llego un poco tarde  pero quería aportar una ayuda.
 
 
 
Como bien comentan @FNP hay que trabajar con los sprites de las distintas partes del cuerpo, te pongo un ejemplo de un juego que seguro que conoces.
 

 
Aquí los sprites de las piernas están dibujados independientes a los del torso, por lo que solo se mostraran las animaciones correspondientes a la acción que realices mientras juegas.
 
 
 
¿Y esto como se lleva a Unity? Te pongo un ejemplo de como lo hago yo y creo que es lo más sencillo.
 

 
Creas tu objeto Player, con sus componentes necesarios,  script - "PlayerController", Rigibody, BoxCollider, etc. y eliminas el SpriteRenderer y el Animator. Creas dos objetos hijos (TopPart, BotPart) con los componentes SpriteRenderer y el Animator. Con esto se consigue tener 2 componentes Animator, uno para cada parte del cuerpo, por lo que las animaciones van a ser independientes una de la otra (puedes correr o saltar y hacer la misma animación de disparo). Y ya solo sería unirlo a través de código.
 

public Animator topAnimator;
public Animator botAnimator;
public SpriteRenderer TopSpritePart;
public SpriteRenderer BotSpritePart;
void MovePlayer()
    {
        float move = Input.GetAxisRaw("Horizontal") * moveSpeed * Time.fixedDeltaTime;
        Vector3 targetVelocity = new Vector2(move, rb.velocity.y);
        rb.velocity = Vector3.SmoothDamp(rb.velocity, targetVelocity, ref x_Velocity, xy_smooth);
        topAnimator.SetFloat("speed", Mathf.Abs(move));
        botAnimator.SetFloat("speed", Mathf.Abs(move));
        if (move > 0 && !facingRight || move < 0 && facingRight)
            FlipPlayer();
    }
void Fire()
    {
        if (Input.GetKeyDown(KeyCode.X))
        {
            Shoot();
            topAnimator.SetTrigger("fire");
        }
    }
                                               

 
Como ves a la hora de realizar la acción de disparo, solo necesito acceder al Animator que controla el torso.
 
Espero haya quedado claro. Un saludo!! 
 
 
 
 
#2
Presentaciones / Buenas!!
Julio 01, 2019, 10:36:57 AM
Muy buenas a todos :) Contento de formar parte del foro, llevo algunas semanas ojeándolo y esta genial el ambiente y la información disponible. 
 
Lo que mas me gusta es el diseño sobre todo el pixel art (tan de moda los último años) y hace unos meses me decidí a aprender Unity.
 
 
 
Un saludo :)