Page 1 sur 1

[DB-RS]J'aimerais introduire mon animation PlayerRun

Publié : 10 Déc 2020 19:57
par Ohke
Bonjour voici ma fixeUpdate ou j'aimerais poser ça

Code : Tout sélectionner

float characterVelocity = Mathf.Abs(r2d.velocity.x);
                animator.SetFloat("Speed", r2d.velocity.x);

Code : Tout sélectionner

void FixedUpdate()
    {
        Bounds colliderBounds = mainCollider.bounds;
        Vector3 groundCheckPos = colliderBounds.min + new Vector3(colliderBounds.size.x * 0.5f, 0.1f, 0);
        // Check if player is grounded
        isGrounded = Physics2D.OverlapCircle(groundCheckPos, 0.23f, layerMask);
 
        // Apply movement velocity
        r2d.velocity = new Vector2((moveDirection) * maxSpeed, r2d.velocity.y);
 
        // Simple debug
        Debug.DrawLine(groundCheckPos, groundCheckPos - new Vector3(0, 0.23f, 0), isGrounded ? Color.green : Color.red);
    }
}
Si vous pouvez m'aider sa serait sympa merci :)

Re: [DB-RS]J'aimerais introduire mon animation PlayerRun

Publié : 10 Déc 2020 20:02
par Max
Bonsoir,

je ne suis pas sûr de comprendre le fond de ta question.
C'est: "ou dois-je insérer dans ma fonction FixedUpdate() les deux lignes de code listées au début ?"
Si c'est cela, en survolant rapidement je pense que tu peux les placer après la ligne
r2d.velocity = new Vector2((moveDirection) * maxSpeed, r2d.velocity.y);
vue que la valeur de velocité est utilisée par animator.SetFloat et le calcul de characterVelocity

Re: [DB-RS]J'aimerais introduire mon animation PlayerRun

Publié : 10 Déc 2020 20:23
par Ohke
Sa na pas l'air de fonctionner.. En gros je veux que mon personnage enclanche l'animation run quand je pousse le bouton vers la flèches droite et gauche et reviens a PlayerIdle quand je ne touche a rien !
Mais le soucis c'est que j'ai beau regardé des tutoriel je ne trouve pas comment faire fonctionner cela et je suis un gros débutant en C# sa fait 4-5 jours que j'essayer de trouver une solution.
Pensez vous avoir une solution a mon problème?
merci ^^

Re: [DB-RS]J'aimerais introduire mon animation PlayerRun

Publié : 10 Déc 2020 21:58
par Max
Débutant en C# et sur Unity aussi.
Tu t'attaques déjà à du lourd pour un début :mrgreen:

Tu passes par animator.SetFloat(); qui est généralement employé dans la gestion des BlendTree au sein de l'animator. Plus précisément pour gérer des transitions progressives entre certains états (arrêt, marcher lentement, puis marcher plus vite, puis courir, etc...).
Pour arriver à ce que tu cherches à faire, de manière simple, il te faut déjà bien appréhender le fonctionnement de la partie animator (state, transition, layers, etc...). Commence déjà par des transitions simples, par exemple entre l'état Idle et Walk. Et pour passer de l'un vers l'autre, passe éventuellement plutôt par un boolean ou encore un Trigger (voir animator.SetBool() ou animator.SetTrigger()).
Niveau code, tu auras juste à gérer la bascule (changement d'état) entre les deux status, en fonction des Inputs par exemple.