11
votes

Unité se déplaçant vers une autre scène avec la scène actuelle en pause

Je fais un jeu de bataille basé sur un tour dans Unity3d et j'ai 2 scènes (une scène de la ville et une scène de bataille). Chaque fois que le personnage rencontre un monstre, le jeu saute sur la scène de bataille où le personnage se bat et retourne à la scène de la ville après avoir vaincu ou perdu.

Le problème est de retourner à la scène de la ville avec le même état que lorsque Le personnage entre dans la scène de bataille (position de caractère, statuts, etc.)

si j'utilise xxx

alors xxx < / Pré>

Puis le citadinez commencera dès la première fois. Comment rendre le citaux à continuer d'où nous nous sommes arrêtés?


0 commentaires

4 Réponses :


15
votes

Il y a deux façons que je pense que vous pouvez accomplir cela. Tout dépend de votre plate-forme cible et de la manière dont les ressources importantes sont mais voilà:

1) Si les ressources ne sont pas un problème

Vous pouvez mettre toutes vos objets de scène normaux et de la scène de combat dans une scène.


1 commentaires

Pas de problème, j'espère que tout fonctionne. Donnez un cri si vous avez besoin d'aide supplémentaire.



1
votes

Je sais que c'est un ancien poste, mais il y a une autre méthode pouvant être utilisée. Ce serait de sauver l'état de la scène. Cela est utile lorsque vous ne vous attendez pas à ce que les utilisateurs disposent de ressources pour charger 2 scènes avec l'application.LoadLelAddiditif. Cette méthode peut potentiellement utiliser deux fois les ressources.

Lorsque vous enregistrez l'état (enregistrez toutes les informations pouvant passer à un fichier ou à un dB), vous pouvez ensuite charger le niveau ultérieurement et ne pas l'avoir assis en mémoire. Vous pouvez également utiliser ceci pour enregistrer votre jeu.


1 commentaires

Pouvez-vous s'il vous plaît ajouter des informations sur comment pour faire sauver un état de scène? Votre réponse implique l'existence d'une préexistante Savescenestate () et restatescenestate () fonctions, que je ne pense pas exister dans l'unité par défaut.



4
votes

Vous pouvez le faire par script dans C # xxx

et lorsque vous souhaitez activer votre jeu, vous pouvez utiliser le temps.Timescale = 1;


0 commentaires

0
votes

Je sais que c'est sur l'ancien post. Mais j'ai trouvé une autre solution très facile pour mon cas. Désactivant simplement tous les gibes d'une scène pendant que l'autre est actif puis la réactivait, dès que je retourne sur la scène racine: xxx


0 commentaires