Revenons un peu sur les changements de scène, actuellement ces derniers se font uniquement avec les Exits Points. Ils sont un peu brusques et Brock n’apparaît pas à la position souhaitée. Pour adoucir le changement, quoi de mieux que de faire une animation de transition. Ici, cette transition sera un écran noir qui apparaît et disparaît.
Pour la réaliser, un Canvas doit être ajouté à la scène et ce dernier doit contenir une image complètement noire. On peut alors ajouter à ce Canva le composant Canva Group permettant de modifier différents paramètres des éléments présents dans le Canva, dont l’opacité. Une fois, cela mit en place, la transition peut être créée. Cette dernière est séparée en deux animations, une où l’opacité va de 1 à 0 (fadeOut) et l’autre où elle va de 0 à 1(fadeIn). La musique a aussi le droit à une transition similaire avec son volume de cette manière, elle commence et s’arrête progressivement lors du changement de scène.
Un script est alors créé permettant de charger la scène avec une coroutine. Cette dernière permet de d’activer la transition et d’attendre un temps avant de charger la nouvelle scène. Une fonction appelant cette coroutine est alors créée et utilisée dans les scripts Menu et LoadLevel afin de charger les scènes avec les différentes transitions. Ces scripts prennent alors en paramètre le Canva contenant la transition. Pour rendre son intégration dans les autres scènes plus simple, ce dernier est changé en prefab.
Afin de régler le problème de ma position de Brock, des Starts Points ont été ajoutés. Ce sont des Empties placés sur les scènes et qui possèdent un script donnant à Brock ainsi qu’à la caméra leur position. De cette manière, Brock et la caméra apparaissent à la position souhaitée lors du changement de scène.
Quelques améliorations peuvent être possibles comme faire apparaître Brock dans une direction donnée à la place de l’idle et gérer les cas où plusieurs Starts Points sont présents sur une même scène.