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);
 }