Je code actuellement un jeu sous Unity, c'est un "simulateur de guerre spatiale", et je m'attaque à une partie édition afin de créer directement dans le jeu ses propres vaisseaux.
Pour la création pas de problème, mais ma question étais de savoir si je pouvais sauvegarder le GameObject créé, autrement dit le vaisseau, d'une façons "assez simple". J'ai bien penser à une fonction qui me permettrais de mettre tout les éléments du vaisseau dans un tableau sauvegarder via PlayerPrefs mais j'ai peur que cela donne un code un peu lourd...
Du coup, en quête de savoir, je me tourne vers vous chers développeurs
Cordialement,
L'humanité n'a pas lieu d'être quant on éprouve une honte a faire pare de cette espèce...Open mind lead to open doors
Bon pour celui ou celle qui ne serais pas un gros troll comme mon précédent interlocuteur, je vais tenter de reformuler
J'ai créé dans mon jeu un mode édition :
Qui donc me permet de créer des vaisseaux comme ceci:
Ma question était simplement de savoir comment je peut sauvegarder le travail du joueur, d'une façons ou d'une autre afin de pouvoir directement le piloter dans le jeu comme ceci :
Cordialement =)
- Edité par :wilo: 15 août 2017 à 13:41:42
L'humanité n'a pas lieu d'être quant on éprouve une honte a faire pare de cette espèce...Open mind lead to open doors
Non mais c'est que j'ai chercher et je suis tomber sur la réponse : "il est impossible de serializer un gameobject ou de le sauvergarder tel quel"
Du coup c'est bon mais j'ai trouver un paliatif, j'enregistre pour chaque piece un ID et sa position, que je stock dans une string du playerPref histoire de faire moins de ligne
Mais je regarderais tes liens, merci
Si ca peut resservir pour les suivant je mets un bout de code avec ma fonction de sauvergarde et de chargement:
using UnityEngine;
using System.Collections;
[System.Serializable]//Important! Every custom class that needs to be serialized has to be marked like this!
public class Game { //don't need ": Monobehaviour" because we are not attaching it to a game object
public string savegameName;//used as the file name when saving as well as for loading a specific savegame
public string testString;//just a test variable of data we want to keep
}
using UnityEngine;
using System.Collection;
public class SaveLoadMenu : MonoBehaviour {
public string text = "";//the string we want to save and load. Corresponds to Game.testString
private string saveGameName = "My Saved Game";//The name of our saved game to save and load.
void OnGUI () {
saveGameName = GUI.TextArea(new Rect(20, 0, 50, 200), saveGameName);
text = GUI.TextArea(new Rect(20, 50, 50, 200), text);
if(GUI.Button(new Rect(20, 100, 50 150), "Save")){
Game newSaveGame = new Game();
newSaveGame.saveGameName = saveGameName;
newSaveGame.testString = text;
SaveLoad.Save(newSaveGame);
}
if(GUI.Button(new Rect(20, 150, 50, 150), "Load")){
Game loadedGame = SaveLoad.Load (saveGameName);
if(loadedGame != null) {
text = loadedGame.testString;
}
}
}
}
Le premier lien sauvegarde une partie seulement du gameobject, et le code ressemble bien à quelque chose pour enregistrer sur différent slot, ou du moins j'ai l'impression...
Malheureusement je vois pas comment cela pourrais sauvegarder un gameobject complet, avec les meshRenderer et Colliders surtout, ce qu' était ma question de départ, surtout qu'il n'y en a même pas passer en paramètre =/
Ah oui ? On me pose un lmgtfy et après on viens me poser des questions ? 😂
La méthode .split te permet de retourner un tableau de string en en découpant une selon un marqueur :
Imagine que ton marqueur soit '/STOP/'
Et que ton texte soit :
string monTexte = "toto/STOP/tata/STOP/tutu"
Alors monTexte.split te retournera un tableau contenant :
Tab[0] "toto"
Tab[1] "tata"
Tab[2] "tutu"
Mais sinon voici un lien qui pourra t'éclairer :
http://bfy.tw/DTRN 😈
Cordialement 😊
- Edité par :wilo: 20 août 2017 à 17:30:24
L'humanité n'a pas lieu d'être quant on éprouve une honte a faire pare de cette espèce...Open mind lead to open doors
Sinon je suis désoler de ne pas trop pouvoir t'aider, j'ai unity installé sur mon ordinateurs avec pleins de projets en attente mais sa fait 2 mois que je n'y ai pas touché, j'ai commencé à faire d'autres petites choses à la place sinon bonne chance pour trouver une chance
Citatione
Comment enregistrer un GameObject - Unity ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.