[Résolu] [DB-AL] problème avec Debug.log

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
ndank
Messages : 13
Inscription : 28 Avr 2018 22:51

[Résolu] [DB-AL] problème avec Debug.log

Message par ndank » 28 Avr 2018 23:08

Bonjour.

Je suis débutant dans la programmation avec unity et je voulais savoir si j'utilisais mal Debug.log();

Code : Tout sélectionner

int test; 
deck d;
public Text t;

d = new deck();
test = d.pioche();
t.text = (test.ToString());
Debug.Log(test);
J'ai créé une action quand je click sur un objet qui me renvoie un int ( d.pioche(); ) et pour être sur que tout marche j'ai mis un Debug.log . malheureusement il ne m'affiche pas toujours le contenu de test ( c'est ce que j'ai comprit après ) du coup, ne comprenant pas pourquoi des fois il ne s'affichait pas , j'ai rajouté un text dans lequel j'écris la réponse. Et la a chaque fois il m'écrit bien ma réponse.

D'où mon questionnement sur Debug.log : est-ce que je l'utilise mal ? est-ce qu'il est saturé ? est-ce qu'il bug ?

j'ai essayé aussi avec Debug.log(test.ToString()); mais cela ne change rien !!

Avez-vous une explication s'il vous plaît .

Cordialement Ndank
Dernière édition par ndank le 01 Mai 2018 18:46, édité 1 fois.

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

Re: [DB-AL] problème avec Debug.log

Message par Max » 29 Avr 2018 09:49

Bonjour,

Comment utilises-tu ton code ? C'est ton code complet ou juste une partie ? Parce qu'en l'état cela ne fonctionnera pas.
Sinon, tu as un exemple dans la doc pour y voir plus clair.
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

ndank
Messages : 13
Inscription : 28 Avr 2018 22:51

Re: [DB-AL] problème avec Debug.log

Message par ndank » 29 Avr 2018 21:09

Bonjour et merci de votre réponse.

C'est juste une petite partie, je pensais que cela suffirait. je peut en mettre plus mais je pense qu'il y aura beaucoup plus à redire sur tout le reste que sur le debug.log. Le but entant juste de comprendre la bon fonctionnement de cette méthode d'affichage, car j'ai passé pas mal de temps à essayé de trouvé un problème dans mon programme qui n'existait pas .

Pour l'utilisation , je l'ai vu en pratique dans plusieurs tutos et j'ai aussi lui cette exemple en pensant que le "object message" pouvais être un texte ou une variable ( d'après ce que j'avais vu ) mais le "Object context" , je ne sais pas encore ce qu'il représente.

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

Re: [DB-AL] problème avec Debug.log

Message par Max » 30 Avr 2018 07:44

le context peut être une varaible (string, int, float, etc...), mais aussi un Vector ou un Quaternion.
Dans ton cas, c'est un int. Donc, du devrais avoir d'affiché sa valeur, quoiqu'il arrive (au pire 0). Si tu n'as aucun affichage dans la console, c'est que tu n’exécutes pas le Debug.Log.
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

ndank
Messages : 13
Inscription : 28 Avr 2018 22:51

Re: [DB-AL] problème avec Debug.log

Message par ndank » 30 Avr 2018 08:32

Mais dans l'exemple donné, je fait les déclarations au début mais après les 4 autres lignes sont à la suite, du coup pourquoi le debug.log ne s’exécute pas mais le t.text lui s’exécute ?

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

Re: [DB-AL] problème avec Debug.log

Message par Max » 30 Avr 2018 08:50

donne ton code complet, cela permettrait d'y voir plus clair je pense.
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

ndank
Messages : 13
Inscription : 28 Avr 2018 22:51

Re: [DB-AL] problème avec Debug.log

Message par ndank » 01 Mai 2018 14:19

Bonjour.

Voilà le code de mes script.

Désolé à l'avance pour cette lecture car l'écriture n'ai pas très propre et que je n'ai suivi aucun conseil de façon d'écriture pour que ce soit plus claire.

J'ai rajouté quelque commentaire pour un peu comprendre le mécanisme bien qu'il y ai des petits défauts ou des chose en cours.

les j1 j2 j3 et j4 son des objet vide.

les pt1 ,pt2 ,pt3 et pt4 sont des text qui affiche le score.

les point1 ,point2 ,point3 et point4 sont de petit point rouge.

table et perso sont des objet qui contienne les autre afin des faire des "menu".

Code : Tout sélectionner

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


public class debut : MonoBehaviour {

    public GameObject j1;
    public GameObject j2;
    public GameObject j3;
    public GameObject j4;
    public GameObject point1;
    public GameObject point2;
    public GameObject point3;
    public GameObject point4;

    //servira à passer du "menu" table au "menu" perso pour afficher les cartes(pas encore utilisé)
    public GameObject table;
    public GameObject perso;


    int distri = 0;
    string carte;
    deck d;
    

    // Use this for initialization
    void Start()
    {

        j1.SetActive(true);
        j2.SetActive(false);
        j3.SetActive(false);
        j4.SetActive(false);
        point1.SetActive(true);
        point2.SetActive(false);
        point3.SetActive(false);
        point4.SetActive(false);

        perso.SetActive(false);
        table.SetActive(true);


        d = new deck();
        distri = d.pioche();
       
        Debug.Log(distri);
       

    }

    // Update is called once per frame
    void Update()
    {

    }
}

Code : Tout sélectionner

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


public class deck  {

    //création du deck
    int[] paquet = { 1, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 26, 26 };
    int[] sorti = new int[72];
    int utiliser = 0;
    int verif;
    bool ok = false;
    int i;
    int carte;
    debut d;
    int y;
    
    
    //servira à metre à jour la main du joueur ainsi que les cartes en jeu (pas encore utilisé)
    static int[] main1 = new int[12];
    static int[] main2 = new int[12];
    static int[] main3 = new int[12];
    static int[] main4 = new int[12];
    static int[] equipe1 = new int[5];
    static int[] equipe2 = new int[5];
    static int[] equipe3 = new int[5];
    static int[] equipe4 = new int[5];



    // Use this for initialization
    void Start() {

        
        

    }

    // Update is called once per frame
    void Update() {

      

    }


     //pioche une carte dans le deck en verifiant qu'elle n'ai pas déjà sortie
    public int pioche()
    {
        y = 1;
       
        while (ok == false)
        {
            verif = Random.Range(0, 72);

            for (i = 0; i < 72; i++)
            {
                if (verif == sorti[i]) i = 75;
            }
            if (i < 74) { ok = true; }
            y++;
        }
        carte = paquet[verif];
        sorti[utiliser] = verif;
        utiliser++;
        ok = false;


        return carte;
    }

}

Code : Tout sélectionner

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

public class niv1 : MonoBehaviour {

    public Text pt1;
    public Text pt2;
    public Text pt3;
    public Text pt4;
    private int p1 = 0;
    private int p2 = 0;
    private int p3 = 0;
    private int p4 = 0;
    public GameObject j1;
    public GameObject j2;
    public GameObject j3;
    public GameObject j4;
    public GameObject point1;
    public GameObject point2;
    public GameObject point3;
    public GameObject point4;
    int test; 
    deck d;
    public Text t;

    // Use this for initialization
    void Start () {


        //affichage des score a 0 pour commencé
        pt1.text = "joueur 1 : " + p1 +" pts";
        pt2.text = "joueur 1 : " + p2 + " pts";
        pt3.text = "joueur 1 : " + p3 + " pts";
        pt4.text = "joueur 1 : " + p4 + " pts";

        

    }
	
	// Update is called once per frame
	void Update () {


        //si on clique dessus cela fait +1 point au joueur actif avec un petit point devant qui indique dans la scene le joueur actif
        //puis passe au joueur suivant
        //je me suis rendu compte la dernière fois que cette condition était vérifié lorsqu'on cliqué sur le canvas et pas seulement le text
        //au quel j'ai appliqué ce script du coup j'était en train de commencé à regarder les bouttons
        if (Input.GetMouseButtonDown(0))
        {
            if (j1.activeSelf == true) {
                p1 = p1 + 1;
                pt1.text = "joueur 1 : " + p1 + " pts";
                j1.SetActive(false);
                j2.SetActive(true);
                point1.SetActive(false);
                point2.SetActive(true);
            }

            else if (j2.activeSelf == true)
            {
                p2 = p2 + 1;
                pt2.text = "joueur 1 : " + p2 + " pts";
                j2.SetActive(false);
                j3.SetActive(true);
                point2.SetActive(false);
                point3.SetActive(true);
            }

            else if (j3.activeSelf == true)
            {
                p3 = p3 + 1;
                pt3.text = "joueur 1 : " + p3 + " pts";
                j3.SetActive(false);
                j4.SetActive(true);
                point3.SetActive(false);
                point4.SetActive(true);
            }

            else if(j4.activeSelf == true)
            {
                p4 = p4 + 1;
                pt4.text = "joueur 1 : " + p4 + " pts";
                j4.SetActive(false);
                j1.SetActive(true);
                point4.SetActive(false);
                point1.SetActive(true);
            }

            //pioche une carte dans le deck quand on clique dessus
            d = new deck();
            test = d.pioche();
            t.text = (test.ToString());
            Debug.Log(test);
        }
    }
}

cordialement ndank

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

Re: [DB-AL] problème avec Debug.log

Message par Max » 01 Mai 2018 15:21

Bonjour,

Ben dans le premier script (debut.cs) tu as un Debug.Log dans ton Start(), donc tu dois avoir dans la console d'affiché la valeur de distri (qui est un int).
Après, si j'ai bien lu, dans 'niv1', si tu appuis sur le bouton 0 de ta souris, tu dois avoir à chaque fois la valeur 'test' (un int aussi) d'affiché.
En Play, tu as bien la console sous les yeux au moins ?
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

ndank
Messages : 13
Inscription : 28 Avr 2018 22:51

Re: [DB-AL] problème avec Debug.log

Message par ndank » 01 Mai 2018 15:35

C'est exactement cela . je l'utilisé vraiment pour contrôler ma fonction pioche()
Et oui je l'ai sous les yeux .

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

Re: [DB-AL] problème avec Debug.log

Message par Max » 01 Mai 2018 15:47

Rassure moi, sur une scène vide, si tu met sur un empty ce code, tu as bien le message dans la console ?

Code : Tout sélectionner

using UnityEngine;

public class Test : MonoBehaviour
{
    private void Start()
    {
        int a = 11;
        Debug.Log("essais "+a);
    }
}
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 »