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.) p>
si j'utilise p> alors p> Puis le citadinez commencera dès la première fois. Comment rendre le citaux à continuer d'où nous nous sommes arrêtés? P> P>
4 Réponses :
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à: p>
Vous pouvez mettre toutes vos objets de scène normaux et de la scène de combat dans une scène. P>
Créez deux objets de jeu vides (un pour les objets de la scène de la ville et l'autre pour des objets de scène de bataille). Vous pouvez alors avoir deux versions
de votre caractère de jeu ou un. Puis écrivez un script qui simplement
passe la ou les caméra (s) de la scène de la ville à la scène de la bataille quand
une bataille est déclenchée et retour à la scène de la ville quand la bataille est
sur. p> li>
Si vous avez une version de chaque personnage, vous pouvez simplement ajouter un script qui modifie le comportement de votre contrôleur de caractères de jeu.
vers / depuis le mode bataille et le mode normal / ville. P> li>
Si vous avez deux versions de chaque personnage, vous devez simplement écrire les scripts de contrôleur de caractères appropriés et
activer / désactiver les personnages de jeu en fonction de laquelle vous êtes
à l'aide de. C'est ainsi que des jeux comme final fantasy 7,8,9 ont réalisé la même chose
effet. Il y avait deux versions des caractères de jeu: une pour le mode bataille et l'autre pour le mode normal. P> li>
ul>
blockQuote>
Pas de problème, j'espère que tout fonctionne. Donnez un cri si vous avez besoin d'aide supplémentaire.
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. P>
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. p>
Pouvez-vous s'il vous plaît ajouter des informations sur comment i> pour faire sauver un état de scène? Votre réponse implique l'existence d'une préexistante Savescenestate () code> et
restatescenestate () code> fonctions, que je ne pense pas exister dans l'unité par défaut.
Vous pouvez le faire par script dans C # et lorsque vous souhaitez activer votre jeu, vous pouvez utiliser le temps.Timescale = 1; p> p>
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: