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: 1435

Licence:



Vous aimerez aussi...

Blog et Tutoriels

C# - Paramètres par défaut d'une méthode

C# - Paramètres par défaut d'une méthode

par alto

Depuis la version 4 du langage C#, il est possible de préciser des paramètres par défaut d'une méthode. Cela ouvre des possibilités de développement intéressantes pour toutes les méthodes de nos classes C#.

applause logo0