[RESOLU] Detecter si le player se déplace 2D

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
Baxter
Messages : 12
Inscription : 04 Fév 2019 13:42

Re: [RESOLU] Detecter si le player se déplace 2D

Message par Baxter » 10 Fév 2019 20:21

Bonjour Max,

Encore une fois merci. :super:
Je pense qu’utiliser la variable velocity dans le rigidbody2d de mon perso règlera le problème.
Image

Sauf que comme précédemment, en bon débutant, je galère un max avec la syntaxe.
Je souhaite y aller par étape:

1) stocker cette valeur (velocity.x) dans une variable.
2) l'afficher dans la console

J'essaie un truc du genre mais c'est certainement une mauvaise syntaxe :nonon:

Code : Tout sélectionner

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class vitesse : MonoBehaviour
{
    public Vector2 velocity;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        GameObject player = GameObject.FindGameObjectWithTag("Player");
        velocity = player.GetComponent < Rigidbody2D>(velocity.x);

        print(velocity); 
    }

}

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

Re: [RESOLU] Detecter si le player se déplace 2D

Message par Max » 10 Fév 2019 21:24

Baxter a écrit :
10 Fév 2019 20:21
J'essaie un truc du genre mais c'est certainement une mauvaise syntaxe :nonon:
oui, et tu dois avoir des messages d'erreurs. Là ce sont un peu les bases d'emploi d'unity et de son API. Il va falloir travailler cela, parce que t'as pas fini de buter sur des turcs simples.
En repartant du script que tu as poté, une version fonctionnelle serait par exemple:

Code : Tout sélectionner

    Rigidbody2D rb2D;

    private void Start()
    {
        GameObject player = GameObject.FindGameObjectWithTag("Player");
        rb2D = player.GetComponent<Rigidbody2D>();
    }


    void Update()
    {
         Debug.Log( rb2D.velocity);
    }
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

Baxter
Messages : 12
Inscription : 04 Fév 2019 13:42

Re: [RESOLU] Detecter si le player se déplace 2D

Message par Baxter » 10 Fév 2019 23:54

ça marche :ghee:
Grand merci Max :merci: :amen:

J'ai pu l'afficher en console puis même ensuite l’intégrer au code de départ (comme un grand loool ::d :modo: ).
Le problème est résolu.

Du coup ,oui je dois travailler les bases d'emploi d'unity et de son API.
par contre j'ai le sentiment que ça va venir avec l’expérience car en débutant j'ai du mal à trouver des ressources pour apprendre facilement. (la doc d'unity en Anglais c'est un peu chaud pour moi).

je met le code au cas ou pour éviter les déterrages de noob :ange:

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class PARALLAX : MonoBehaviour
{

    float offset;
    public float speed;
    public GameObject Player;
    public Rigidbody2D rb2D;

    private void Start()
    {
        GameObject player = GameObject.FindGameObjectWithTag("Player");
        rb2D = player.GetComponent<Rigidbody2D>();
    }

    void Update()
    {
            offset += rb2D.velocity.x * speed;
            GetComponent<Renderer>().material.SetTextureOffset("_MainTex", new Vector2(offset, 0));
    }
}

Répondre

Revenir vers « (C#) CSharp »