Cette extension simplifie l’activité de la décoloration d’une scène, de l’affichage d’un indicateur de progression, du chargement d’une scène, puis de la rétro-suppression.
Les opérations de scène sont pilotées par le service SceneSystem, mais toute opération basée sur des tâches peut être utilisée pour piloter une transition.
Activation de l’extension
Pour activer l’extension, ouvrez votre profil RegisteredServiceProvider. Cliquez sur Inscrire un nouveau fournisseur de services pour ajouter une nouvelle configuration. Dans le champ Type de composant, sélectionnez SceneTransitionService. Dans le champ Profil de configuration, sélectionnez le profil de transition de scène par défaut inclus avec l’extension.
Options de profil
Utiliser l’indicateur de progression par défaut
Si cette option est activée, le préfabriqué de l’indicateur de progression par défaut est utilisé lorsqu’aucun objet indicateur de progression n’est fourni lors de l’appel DoSceneTransition. Si un objet indicateur de progression est fourni, la valeur par défaut est ignorée.
Utiliser la couleur de fondu
Si cette option est cochée, le service de transition applique un fondu pendant votre transition. Ce paramètre peut être modifié au moment de l’exécution via la propriété du UseFadeColor service.
Couleur de fondu
Contrôle la couleur de l’effet de fondu. Alpha est ignoré. Ce paramètre peut être modifié au moment de l’exécution avant une transition via la propriété du FadeColor service.
Fondu des cibles
Contrôle les caméras auxquelles un effet de fondu est appliqué. Ce paramètre peut être modifié au moment de l’exécution via la propriété du FadeTargets service.
Paramètre
Caméras ciblées
Principal
Applique l’effet de fondu à l’appareil photo main.
Interface utilisateur du service
Applique un effet de fondu aux caméras de la couche d’interface utilisateur. (N’affecte pas l’interface utilisateur de superposition)
Tous
S’applique aux caméras main et d’interface utilisateur.
Custom
S’applique à un ensemble personnalisé de caméras fournies via SetCustomFadeTargetCameras
Temps de fondu/fondu dans le temps
Paramètres par défaut pour la durée d’un fondu à l’entrée/sortie d’une transition. Ces paramètres peuvent être modifiés au moment de l’exécution via les propriétés et FadeInTime du FadeOutTime service.
Type de fader de l’appareil photo
Classe ICameraFader à utiliser pour appliquer un effet de fondu aux caméras. La classe par défaut CameraFaderQuad instancie un quad avec un matériau transparent devant la caméra cible près du plan de clip. Une autre approche peut consister à utiliser un système de post-effets.
En utilisant l’extension
Vous utilisez le service de transition en transmettant les tâches exécutées pendant que la caméra est éteinte.
Utilisation de tâches système de scène
Dans la plupart des cas, vous utiliserez les tâches fournies par le service SceneSystem :
Dans d’autres cas, vous pouvez effectuer une transition sans charger réellement une scène :
c#
privateasyncvoidTransitionToScene()
{
ISceneTransitionService transition = MixedRealityToolkit.Instance.GetService<ISceneTransitionService>();
// Fades out// Resets scene// Fades back inawait transition.DoSceneTransition(
() => ResetScene()
);
}
privateasync Task ResetScene()
{
// Go through all enemies in the current scene and move them back to starting positions
}
Vous pouvez également charger une scène sans utiliser le service SceneSystem :
c#
privateasyncvoidTransitionToScene()
{
ISceneTransitionService transition = MixedRealityToolkit.Instance.GetService<ISceneTransitionService>();
// Fades out// Loads scene using Unity's scene manager// Fades back inawait transition.DoSceneTransition(
() => LoadScene("TestScene1")
);
}
privateasync Task LoadScene(string sceneName)
{
AsyncOperation asyncOp = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
while (!asyncOp.isDone)
{
await Task.Yield();
}
}
Utilisation de plusieurs tâches
Vous pouvez également fournir plusieurs tâches, qui seront exécutées dans l’ordre :
Un indicateur de progression est tout ce qui implémente l’interface IProgressIndicator . Cela peut prendre la forme d’un écran de démarrage, d’un indicateur de chargement tagalong 3D ou de tout autre élément qui fournit des commentaires sur la progression de la transition.
Si UseDefaultProgressIndicator est archivé dans le profil SceneTransitionService, un indicateur de progression est instancié au début d’une transition. Pendant la durée de la transition, les propriétés et Message les propriétés de Progress cet indicateur sont accessibles via les méthodes et SetProgressMessage de SetProgressValue ce service.
Lors de l’appel DoSceneTransition , vous pouvez également fournir votre propre indicateur de progression via l’argument facultatif progressIndicator . Cela remplacera l’indicateur de progression par défaut.
Apprenez à créer une scène 3D dans Unity avec le SDK Microsoft Maps ou un terrain statique. Familiarisez-vous avec la conception de scènes en réalité mixte, l'interface Unity et le déploiement de votre projet Unity sur un appareil de réalité mixte.