Logo Makeyourgame
Accueil Les formations Créer un jeu Les ateliers Les tutoriels Blog Loterie
Logo Makeyourgame
Les formations Les financements Les exercices La certification Unity
Logo Makeyourgame
Mes objectifs Les jeux Les ressources Le glossaire
Logo Makeyourgame
Les tutos Les tutos Youtube

Ordre d'exécution des scripts au chargement avec Unity 2019 : Unity

pictureProfil_alto
Ecrit par alto
Catégorie Unity
Mis à jour le 28/04/2020
Ordre d'exécution des scripts au chargement avec Unity 2019

Comment changer l'ordre d'exécution des scripts au chargement avec Unity 2019 ? Découvrez la notion d'ordre de chargement des scripts ou encore le principe des méthode Start, OnEnable et Awake du framework MonoBehavior de Unity.

4 min Débutant

Très souvent lors du développement d'un jeu vidéo, ou application, nous avons besoin de contrôler l'ordre d'exécution des scripts afin d'être sûrs que tout se passe bien !

Mais savez-vous vraiment sous Unity, quelles sont les méthodes principales de la classe MonoBehavior ?

Les méthodes Awake - OnEnable et Start

Il est indispensable de bien connaître l'ordre d'exécution des méthodes avant d'envisager de changer l'ordre d'exécution des scripts.

En effet dès qu'une classe étend la classe MonoBehavior de Unity, on a accès a tout plein de méthodes...

Pour preuve les méthode Start et Update qui sont systématiquement écrites lors de la création d'un nouveau script !

Ainsi il faut savoir qu'au démarrage d'un script MonoBehavior les méthodes suivantes sont appelées dans l'ordre:

- Awake : appelée une seule fois dès le lancement du script

- OnEnable: appelée au démarrage si le script est activé (Enable), puis à chaque activation du script (quand on joue avec le disable/enable)

- Start: appelée une seule fois dès le lancement du script, et après Awake

https://makeyourgame.fun//upload/users/superelien/tutoriels/executionorderflowunity-5e19cabfdc53c.png

Nous portons ici notre attention sur 3 méthodes seulement, mais sachez que bien d'autres existent ! Voici la réalité complexe de l'ordre d'exécution sous Unity.

Cas d'étude: Ordre d'exécution

Si maintenant on part de l'idée que nous disposons de 2 scripts, l'un appelant l'autre lors du démarrage du jeu vidéo, on doit alors se poser la question de l'ordre d'exécution des méthodes et des scripts.

En effet si le premier est initialisé au Start, comme le second, il se peut que ce dernier ne soit pas encore prêt (initialisé) quand le premier script l'appellera ...

On peut donc penser mettre le premier script initialisé en Start, qui appelle un second script initialisé en Awake (un loader de datas par exemple).

Cela fonctionnera sans souci, mais nous avons ici géré uniquement l'ordre d'appel des méthodes, mais pas forcément l'ordre d'exécution des scripts.

Or il se peut que pour x raisons ( ex: chargement d'un fichier volumineux dans le second script), le script ne soit pas encore initialisé lors de l'appel par le premier script, qui pourtant fait son appel dans la méthode Start.

Il nous faut donc aller plus loin pour résoudre le souci.

Changer l'ordre d'exécution des scripts au chargement

Heureusement Unity dispose de la possibilité d'indiquer des scripts à charger au démarrage et avant le "default time"...

Visionnez la vidéo et découvrez comment utiliser cette fonctionnalité de Unity :

Vues: 3656

Licence:



Validation du Tutoriel

Veuillez vous connecter ou créer un compte pour pouvoir valider ce tutoriel et ainsi gagner de l'expérience (XP) !

Vous aimerez aussi...

Blog et Tutoriels

Utiliser la classe WWW  de Unity

Utiliser la classe WWW de Unity

par alto

Avec la classe WWW de Unity , vous allez pouvoir contacter un script php (par exemple) placé sur un serveur web. Apprenez à récupérer des informations issues d'une base de données depuis votre application Unity.

applause logo0