DB RS Comment je pourrait introduire mon animation Jump?

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Ohke
Messages : 10
Inscription : 10 Déc 2020 18:55

DB RS Comment je pourrait introduire mon animation Jump?

Message par Ohke » 18 Déc 2020 19:47

Bonjour étant un débutant C#
J'aimerais s'avoir comment installer une animation Jump dans ce script en évitant de faire des erreurs..?
merci


Code : Tout sélectionner

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float moveSpeed;
    public float jumpForce;

    private bool isJumping;
    private bool isGrounded;

    public Transform groundCheck;
    public float groundCheckRadius;
    public LayerMask collisionLayer;
   

    public Rigidbody2D rb;
    public Animator animator;
    public SpriteRenderer spriteRenderer;
    public CapsuleCollider2D playerCollider;

    private Vector3 velocity = Vector3.zero;
    private float horizontalMovement;

    public static PlayerMovement instance;

    private void Awake()
    {
        if (instance != null)
        {
            Debug.LogWarning("Il y a plus d'une instance de PlayerMovement dans la scène");
            return;
        }

        instance = this;
    }

    void Update()
    {
        horizontalMovement = Input.GetAxis("Horizontal") * moveSpeed * Time.fixedDeltaTime;
        if (Input.GetButtonDown("Jump") && isGrounded)
        {
            isJumping = true;
        }

        Flip(rb.velocity.x);

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

    void FixedUpdate()
    {      
        isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, collisionLayer);

        MovePlayer(horizontalMovement);

    }

    void MovePlayer(float _horizontalMovement)
    {
        Vector3 targetVelocity = new Vector2(_horizontalMovement, rb.velocity.y);
        rb.velocity = Vector3.SmoothDamp(rb.velocity, targetVelocity, ref velocity, .05f);

        if (isJumping == true)
        {
            rb.AddForce(new Vector2(0f, jumpForce));
            isJumping = false;
        }
    }

    void Flip(float _velocity)
    {
        if(_velocity > 0.1f)
        {
            spriteRenderer.flipX = false;
        }else if(_velocity < -0.1f)
        {
            spriteRenderer.flipX = true;
        }
    }

    private void OnDrawGizmos()
    {
        Gizmos.color = Color.red;
        Gizmos.DrawWireSphere(groundCheck.position, groundCheckRadius);
    }
}

Avatar de l’utilisateur
Max
Messages : 8147
Inscription : 30 Juil 2011 13:57
Contact :

Re: DB RS Comment je pourrait introduire mon animation Jump?

Message par Max » 18 Déc 2020 19:51

Bonsoir,

première question, au niveau de ton Animator, une animation "Jump" existe-t-elle ?
En suite, quelle transition a été mise en place (par exemple entre Idle et Jump) ?
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Ohke
Messages : 10
Inscription : 10 Déc 2020 18:55

Re: DB RS Comment je pourrait introduire mon animation Jump?

Message par Ohke » 18 Déc 2020 20:02

Re, Oui une animation Jump existe et la transition et bien entre idle et Jump désolée de ne pas avoir notifié ce renseignement !

Avatar de l’utilisateur
Max
Messages : 8147
Inscription : 30 Juil 2011 13:57
Contact :

Re: DB RS Comment je pourrait introduire mon animation Jump?

Message par Max » 18 Déc 2020 21:21

en parcourant rapidement le script, je dirais qu'il faut initier le saut dans la condition

Code : Tout sélectionner

        if (Input.GetButtonDown("Jump") && isGrounded)
        {
            isJumping = true;
        }
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Répondre

Revenir vers « (C#) CSharp »