class UserD { var UTx:float; var UTy:float; var UTz:float; }
function Writ() { var w: UserD = new UserD(); w.UTx=transform.position.x; w.UTy=transform.position.y; w.UTz=transform.position.z; var fs: FileStream = new FileStream("d.dat", FileMode.Create); var bf: BinaryFormatter = new BinaryFormatter(); bf.Serialize(fs, w); fs.Close(); }
function Read() { var vf: IFormatter = new BinaryFormatter(); var fs = new FileStream("d.dat", FileMode.Open, FileAccess.Read); var w1: UserD= vf.Deserialize(fs); transform.position=new Vector3(w1.UTx,w1.UTy,w1.UTz); fs.Close(); }
function LateUpdate() { if (Input.GetKeyDown(KeyCode.R)) { Read(); } if (Input.GetKeyDown(KeyCode.T)) { Writ(); } }
Клавиша Т сохраняет клавиша R загружает. Сохраняет только позицию, но легко добавить все что надо. Сохраняет в бинарник.
Качает файл с нета
Code
import System.Net;
function Start() { var webClient :WebClient = new WebClient(); webClient.DownloadFile("http://указываем URL", "c:/myfile.txt"); }
Сообщение отредактировал Dekterev - Вт, 29 Ноя 2011, 15:57
Придется, но можно например искать объекты по тегу (или по имени), считывать с них данные (если это возможно, я пока не пробавал) которые надо сохранить.
Добавлено (04.08.2010, 23:12) --------------------------------------------- Проверил, нашел объект по тегу и снял с него координату. Так что можно сделать более легкий способ сохранения данных.
Сообщение отредактировал proektEK - Ср, 04 Авг 2010, 22:55
В документации по Антаресу нашел про мультитеги, в принципе можно и свою систему сделать для своих нужд, но не понял для чего они пригодятся для сохранения и загрузки данных?
Добавлено (06.08.2010, 20:02) --------------------------------------------- Пока нашел только как получить список GameObject в сцене: for(var gameObj : GameObject in FindObjectsOfType(GameObject)) Может есть какие идеи?
Пока мой файл сохранения вот такой, как теперь это применять к объктам без понятия.
Sphere-Untagged_-59,26877_-85,25777_-140,3473 Directional light-Untagged_0_105,4203_0 Cube6-First_53,0635_2,071086_72,17645 GameObject-Untagged_22,63637_0_0 Cube-First_68,51543_2,071086_72,17645 T errain-Untagged_0_0_0 Main Camera-MainCamera_68,09195_8,268555_36,5625
Вроде немного разобрался, список объектов и их основные свойства у меня сохраняются в файл, строка выглядит так: Directional light_Untagged_0_105,4203_0 Имя_Тег_X_Y_Z При чтении файл разбивается на строки, а строки через разделитель "_" на свойства. Ну а там уже методом перебора выбирается объект и применяются его свойства . Скрипт пока не дописан и может всплывет чего.
Сообщение отредактировал proektEK - Сб, 07 Авг 2010, 11:08
Кстати, как раз сегодня нужно было сериализатор написать. Подумал, что бинарники мне не к чему, взял скрипт по ХМЛ с Вики и немного его переделал. Немного - это чтобы он автоматически сохранял, потом загружал и отчитывался в ГУЙ. Фанат игр Max Payne и Fahrenheit.
Я тоже с ним пытался работать, чтоб свой туда запихать, но не получилось. Может кто знает как из строки: MainCamera_80,91579_1,08_63,49966 координаты перевести в цифры, int.Parse() не помогает. Блин скрипт почти готов осталось только эта проблема. Фу, написал вроде скрипт, конечно глючный но это мелочи, придется добавлять имя объекта, одних тегов мало, если много объектов с одинаковым тегом зацикливается на одном и все координаты назначает ему. Скоро может демку выложу, кому интересно.
Немного потестил, оказался медленным, за 5 секунд перебирает 210 объектов. Демка, можно поспавнить кубики-"Fire1", сохранить-кнопка V, загрузить-кнопка B. http://vozpogdenie.ucoz.ru/Vozrogd/TestS.rar
Спавнил таким же образом как и в демки, все объекты в сцене добавляются в массив при сохранении. Но так как скрипт неудачный наверно придется вручную задавать все объекты которые надо сохранить.
Quote (Скептик)
По тегу быстрее. Но тогда скорее всего придется надстройку для мультитега прикручивать.
Все верно, что то на подобии мультитегов придется писать или возвращаться к поиску по имени. Немного изменил код
Сделал, вернее использовал кусок кода с офф. форума Unity 3d, теперь есть список файлов сохранения
Там демка скрипта сохранения и загрузки (см. скрины). Есть две сцены на одной меню на другой якобы игра. Сохраняется положение камеры и двух кубиков. В игре если нажать V то появится меню где можно написать имя файла и сохранить или вернуться в меню. Скрипты еще пока кривые, так что возможны глюки.
Сообщение отредактировал proektEK - Пт, 13 Авг 2010, 22:31