[RESOLU] Je n'arrive pas à terminer ce niveau

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Je n'arrive pas à terminer ce niveau

Message par DevAmat » 11 Mars 2021 18:23

C'est ca! Et en plus on le voit sur tes captures d'écran :hehe: .

Dans la fenêtre "console" active bien l'affichage des "log" (le bouton en haut à droite avec un point d'exclamation dans une bulle).
https://docs.unity3d.com/Manual/Console.html

On a toujours tendance a chercher trop compliqué! :gene:

Ablupblup
Messages : 12
Inscription : 15 Fév 2021 16:51

Re: Je n'arrive pas à terminer ce niveau

Message par Ablupblup » 11 Mars 2021 18:29

DevAmat a écrit :
11 Mars 2021 18:23
C'est ca! Et en plus on le voit sur tes captures d'écran :hehe: .

Dans la fenetre "console" active bien l'affichage des "log" (le bouton en haut à droite avec un point d'éclamation dans une bulle).
https://docs.unity3d.com/Manual/Console.html
Bon ... par ou commencer ...
Merci à tous ceux qui ont voulu m'aider j'ai appris quelques petites choses au passage et surtout désolé de vous avoir fais perdre votre temps pour un truc aussi idiot.
En espérant que la prochaine fois ce sera pour quelque chose de plus ... intéressant X|

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Je n'arrive pas à terminer ce niveau

Message par DevAmat » 11 Mars 2021 18:34

Haha pas de souci, et surtout peut être que ce sujet aidera dans le futur. Une personne pourrait tomber dessus et s'apercevoir qu'elle a fait la meme erreur, ou apprendre des choses des réponses.

Le diable est dans les détails, des choses insignifiantes sont parfois essentielles et font perdre un temps de fou.
Les joie du development! ;-)

Avatar de l’utilisateur
jmhoubre
Messages : 851
Inscription : 05 Oct 2019 22:05

Re: [RESOLU] Je n'arrive pas à terminer ce niveau

Message par jmhoubre » 12 Mars 2021 00:57

Heureux de voir ton souci résolu.

Quelques petites choses comme tu dis que tu débutes :

1) Quand je crée un script pour un objet, la 1ère chose que je fais, c'est de mettre Debug.Log("Start") dans la fonction Start et de ne tester que cela. A 2 heures du matin, les choses les plus simples sont parfois peu évidentes.

2) Petite coquille pour le nom d'une classe.
Pour nommer les identifiants, il y a des conventions. Une de celles utilisées est celle de Microsoft. Visual Studio "couine" quand cette convention n'est pas respectée :
- les noms de classes, de méthodes et de propriétés commencent par une majuscule ;
- les noms de variables commencent par une minuscule ;
Donc

Code : Tout sélectionner

public class EndTrigger
3) On évite les méthodes couteuses dans les méthodes Update, FixedUpdate, et LateUpdate.
Dans le script PlayerMovment, la méthode Update contient ceci :

Code : Tout sélectionner

FindObjectOfType<gameManager>().EndGame();
Toutes les méthodes Find sont couteuses (y compris Camera.main qui cache un appel à FindGameObjectsWithTag jusqu'à Unity 2019.3).
Bon ici, le code n'est exécuté qu'une fois, cela n'a aucune incidence.

En général, on "cache" le résultat une bonne fois pour toutes :

Code : Tout sélectionner

public class PlayerMovment : MonoBehaviour
{
	private GameManager gameManager;
	
	...
	
	private void Start ()
	{
		gameManager = FindObjectOfType<gameManager>();
		// Mise en cache.
		if (gameManager == null)
		{
			Debug.LogError("GameManager introuvable.");
		}
	}
	
	private void Update ()
	{
		...
		if (rb.position.y < -1f)
		{
            		gameManager.EndGame ();
            	}
        }
}

Répondre

Revenir vers « Unity le logiciel »