Page 2 sur 2

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

Publié : 10 Fév 2019 20:21
par Baxter
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); 
    }

}

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

Publié : 10 Fév 2019 21:24
par Max
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);
    }

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

Publié : 10 Fév 2019 23:54
par Baxter
ç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));
    }
}