Basculer entre les scènes

Page mise à jour :
Date de création de la page :

Environnement de vérification

Windows
  • Fenêtres 11
Éditeur Unity
  • 2020.3.25f1
Package système d’entrée
  • 1.2.0

Conditions préalables à cette astuce

Les paramètres suivants ont été définis à l’avance comme prémisse pour la description de cette astuce.

Découvrez comment passer d’une scène à l’autre

Une scène est une soi-disant « scène », mais Unity utilise le mot « scène » tel qu’il est, donc je vais l’expliquer avec l’expression scène.

Les scènes passent souvent d’une scène à l’autre dans le jeu. Par exemple, si vous démarrez le jeu à partir du menu Démarrer et que l’action commence, vous pouvez le considérer comme un changement de scène. En outre, l’action d’ouvrir l’écran de menu pendant une action sera également un changement de scène en fonction de l’expression du menu.

Ce type de changement de scène doit être implémenté dans Unity, et il existe de nombreuses façons de le faire. Par exemple, il ne devrait y avoir qu’une seule « Scène (dans Unity) » dans le jeu. Lorsque la scène de jeu change, tous les objets de la scène précédente sont supprimés et les objets nécessaires sont générés pour la scène suivante. Cependant, si cette approche présente l’avantage de ne fournir qu’une seule scène, elle présente l’inconvénient de devoir gérer par programmation les transitions d’objets.

Dans cette astuce, je voudrais implémenter une méthode pour préparer autant de fichiers « Scene » qu’il y a de scènes et placer les objets nécessaires dans la scène à l’avance pour changer de scène. Basculer entre les scènes réelles est très facile car tout ce que vous avez à faire est de basculer entre les fichiers de scène.

Préparation de la scène

Tout d’abord, créez un projet normal. Il est supposé que vous avez déjà préparé le package système d’entrée et configuré la caméra.

Cette fois, nous allons préparer deux fichiers de scène et mettre en œuvre l’opération consistant à cliquer sur le bouton dans la première scène et à passer à la deuxième scène.

La SampleScene scène existante doit être nommée , alors remplacez-la SampleScene1 par .

Ensuite, faites un clic droit sur une zone vide du projet et sélectionnez « Scène » dans « Créer ». Vous pouvez également l’ajouter à partir du bouton + sous l’onglet du projet.

Un nouveau fichier de scène sera ajouté, alors nommez-le SampleScene2 .

SampleScene1 Double-cliquez pour ouvrir la scène et placer l’objet comme indiqué ci-dessous. Lorsque vous cliquez sur le bouton, vous SampleScene2 pouvez passer à , afin que la mise en page soit appropriée.

SampleScene2 Double-cliquez pour ouvrir la scène et placer l’objet comme indiqué ci-dessous. Peu importe ce que vous mettez parce que vous voulez juste savoir ce qui a changé.

Après avoir créé la scène, ouvrez « Paramètres de fichier > de construction » dans le menu.

Baisse des scènes incluses dans SampleScene2 la construction.

Fermez les paramètres de génération une fois qu’ils sont ajoutés comme indiqué ci-dessous.

Processus de changement de scène

Le changement de scène se fait par script, veuillez donc créer un script. Le nom est arbitraire, mais dans ce cas SceneChange , il est .

Le script ressemble à ceci :

using UnityEngine;
using UnityEngine.SceneManagement;  // 追加

public class SceneChange : MonoBehaviour
{
  /// <summary>ボタンをクリックしたときに呼ばれます。</summary>
  public void OnClick()
  {
    // 指定したシーンを読み込み他のシーンは削除します
    SceneManager.LoadScene("SampleScene2", LoadSceneMode.Single);
  }
}

Le contenu est très simple SceneManager.LoadScene et vous pouvez basculer entre les scènes en appelant des méthodes.

Le premier argument est le nom de la scène vers laquelle basculer.

Si vous spécifiez comme LoadSceneMode.Single deuxième argument, vous pouvez ouvrir uniquement la scène spécifiée tout en fermant la scène active. Il y a aussi un paramètre appelé simplement ajouter une LoadSceneMode.Additive scène, mais je ne l’expliquerai pas dans cet article.

Après avoir enregistré le script, SampleScene1 ouvrez-le et joignez-le à . EventSystem Il peut s’agir de n’importe quel objet auquel vous vous attachez.

Définissez OnClick l’événement click du bouton sur un objet attaché à afin que la SceneChange méthode puisse être appelée.

Essayez de lancer le jeu et voyez si la scène change après avoir cliqué sur le bouton.