public static void SaveXml(TimeChronology chronology, string datapath) { Type[] extraTypes={typeof(TimeSequence),typeof(TimeEvent)}; XmlSerializer serializer = new XmlSerializer (typeof(TimeChronology), extraTypes); FileStream fs = new FileStream(datapath, FileMode.Create); serializer.Serialize(fs, chronology); fs.Close(); }
void Start() { //инициализируем элементы интерфейса GameObject[] interfaces = GameObject.FindGameObjectsWithTag ("Interface"); for (int i=0;i<interfaces.Length;i++) { if (string.Equals(interfaces[i].name,"Interface")) interfacer=interfaces[i]; else if (string.Equals(interfaces[i].name,"Settings")) settings=interfaces[i]; } settings.SetActive (false); interfacer.SetActive (true); activeWindow = interfacer; doubleToChange = 0;//Если игрок откроет Settings, то ему по дефолту предложится начать уровень заново с нулевого уровня if (PlayerPrefs.HasKey ("AnchNumber"))//где создавать главный дубль? defaultAnchNumber=PlayerPrefs.GetInt("AnchNumber"); else { PlayerPrefs.SetInt("AnchNumber",0); defaultAnchNumber=PlayerPrefs.GetInt("AnchNumber"); } andr = (PlayerPrefs.GetInt ("AndroidMod") == 1);//включить режим Андроид-приложения? begin = true; pause = false; for (int i=0; i<anchors.Length; i++)//инициализация якорей anchors [i].GetComponent<AnchorScript> ().SetNumber (i); if (!PlayerPrefs.HasKey ("beginTime")) { PlayerPrefs.SetFloat ("beginTime", 0f); timer=PlayerPrefs.GetFloat("beginTime"); } else timer=PlayerPrefs.GetFloat("beginTime")-timeRecoil; datapath = (Application.platform == RuntimePlatform.Android? Application.dataPath: Application.persistentDataPath) + "SavedData" + Application.loadedLevelName + ".xml"; if (PlayerPrefs.GetInt("NewLevel")==1)//Чтоб наверняка начать новый уровень сызнова-заново!!! { PlayerPrefs.SetInt("NewLevel",0); File.Delete(datapath); DeletePrefs(); Application.LoadLevel (Application.loadedLevel); } if (File.Exists (datapath)) { // если файл сохранения уже существует chronology = Serializator.DeXml (datapath); // считываем state оттуда for (int i=0;i<chronology.chronology.Count;i++) { appearances.Add(chronology.chronology[i].sequence[0]); whoHasAppeared.Add (false); } } else { SetDefaultChronology(); } }
//С этого начинается летопись хронология void SetDefaultChronology() { chronology= new TimeChronology(); CreateDouble (0); }