Простая сохранялка - Форум Игроделов
Сб, 23 Авг 2025, 15:48 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Простая сохранялка
proektEKДата: Ср, 04 Авг 2010, 21:31 | Сообщение # 1
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
Может кому надо, простая сохранялка
Code
import System;
import System.IO;
import System.Runtime.Serialization;
import System.Runtime.Serialization.Formatters.Binary;
import UnityEngine;
import System.Collections.Generic;

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
 
СообщениеМожет кому надо, простая сохранялка
Code
import System;
import System.IO;
import System.Runtime.Serialization;
import System.Runtime.Serialization.Formatters.Binary;
import UnityEngine;
import System.Collections.Generic;

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

Автор - proektEK
Дата добавления - 04 Авг 2010 в 21:31
СкептикДата: Ср, 04 Авг 2010, 22:38 | Сообщение # 2
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Но это придется на каждый обьект вешать.

Фанат игр Max Payne и Fahrenheit.
 
СообщениеНо это придется на каждый обьект вешать.

Автор - Скептик
Дата добавления - 04 Авг 2010 в 22:38
proektEKДата: Ср, 04 Авг 2010, 23:12 | Сообщение # 3
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
Придется, но можно например искать объекты по тегу (или по имени), считывать с них данные (если это возможно, я пока не пробавал) которые надо сохранить.

Добавлено (04.08.2010, 23:12)
---------------------------------------------
Проверил, нашел объект по тегу и снял с него координату. Так что можно сделать более легкий способ сохранения данных.


Сообщение отредактировал proektEK - Ср, 04 Авг 2010, 22:55
 
СообщениеПридется, но можно например искать объекты по тегу (или по имени), считывать с них данные (если это возможно, я пока не пробавал) которые надо сохранить.

Добавлено (04.08.2010, 23:12)
---------------------------------------------
Проверил, нашел объект по тегу и снял с него координату. Так что можно сделать более легкий способ сохранения данных.

Автор - proektEK
Дата добавления - 04 Авг 2010 в 23:12
СкептикДата: Ср, 04 Авг 2010, 23:31 | Сообщение # 4
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
По тегу быстрее. Но тогда скорее всего придется надстройку для мультитега прикручивать.

Фанат игр Max Payne и Fahrenheit.
 
СообщениеПо тегу быстрее. Но тогда скорее всего придется надстройку для мультитега прикручивать.

Автор - Скептик
Дата добавления - 04 Авг 2010 в 23:31
proektEKДата: Чт, 05 Авг 2010, 07:09 | Сообщение # 5
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
К сожалению не знаю о мультитагах.
 
СообщениеК сожалению не знаю о мультитагах.

Автор - proektEK
Дата добавления - 05 Авг 2010 в 07:09
СкептикДата: Чт, 05 Авг 2010, 16:10 | Сообщение # 6
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
proektEK, в Антаресе от Неодропа они есть и я еще несколько систем видел.

Фанат игр Max Payne и Fahrenheit.
 
СообщениеproektEK, в Антаресе от Неодропа они есть и я еще несколько систем видел.

Автор - Скептик
Дата добавления - 05 Авг 2010 в 16:10
proektEKДата: Чт, 05 Авг 2010, 18:18 | Сообщение # 7
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
В документации по Антаресу нашел про мультитеги, в принципе можно и свою систему сделать для своих нужд, но не понял для чего они пригодятся для сохранения и загрузки данных?
 
СообщениеВ документации по Антаресу нашел про мультитеги, в принципе можно и свою систему сделать для своих нужд, но не понял для чего они пригодятся для сохранения и загрузки данных?

Автор - proektEK
Дата добавления - 05 Авг 2010 в 18:18
СкептикДата: Чт, 05 Авг 2010, 20:41 | Сообщение # 8
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Ну допустим я хочу сохранить позицию врагов, которые уже бегают у меня в сцене с тегом Enemy.

Фанат игр Max Payne и Fahrenheit.
 
СообщениеНу допустим я хочу сохранить позицию врагов, которые уже бегают у меня в сцене с тегом Enemy.

Автор - Скептик
Дата добавления - 05 Авг 2010 в 20:41
proektEKДата: Пт, 06 Авг 2010, 20:02 | Сообщение # 9
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
Да, надо подумать. wacko

Добавлено (06.08.2010, 20:02)
---------------------------------------------
Пока нашел только как получить список GameObject в сцене: for(var gameObj : GameObject in FindObjectsOfType(GameObject))
Может есть какие идеи?

 
СообщениеДа, надо подумать. wacko

Добавлено (06.08.2010, 20:02)
---------------------------------------------
Пока нашел только как получить список GameObject в сцене: for(var gameObj : GameObject in FindObjectsOfType(GameObject))
Может есть какие идеи?


Автор - proektEK
Дата добавления - 06 Авг 2010 в 20:02
СкептикДата: Пт, 06 Авг 2010, 20:32 | Сообщение # 10
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Массив всех ГО нужно делать, перебирать все его элементы и свойства.
А как его сделать?


Фанат игр Max Payne и Fahrenheit.
 
СообщениеМассив всех ГО нужно делать, перебирать все его элементы и свойства.
А как его сделать?

Автор - Скептик
Дата добавления - 06 Авг 2010 в 20:32
proektEKДата: Сб, 07 Авг 2010, 21:10 | Сообщение # 11
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
Вот сижу и думаю над этим

Code
var objscen:GameObject[];
function Start()
{
var obj : GameObject[] = FindObjectsOfType(GameObject);
objscen=obj;
print(objscen[1].name);
print(objscen[2].transform.position.x);
print(objscen[3].gameObject.tag);
}

Список объектов и свойства по индексу. Пока знаний не хватает чтоб это разложить по полкам и сохранить.

Небольшая модификация, перебирает объекты и считывает свойства (в этом скрипте имя и тег)
Code
var objscen:GameObject[];
var nomer=0;
function Start()
{
var obj : GameObject[] = FindObjectsOfType(GameObject);
objscen=obj;
}

function Update()
{
if(nomer<objscen.Length)
{
if(objscen[nomer])
{
print(objscen[nomer].name);
print(objscen[nomer].gameObject.tag);
nomer+=1;
}
}
}



Пока мой файл сохранения вот такой, как теперь это применять к объктам без понятия.



Вроде немного разобрался, список объектов и их основные свойства у меня сохраняются в файл, строка выглядит так:
Directional light_Untagged_0_105,4203_0
Имя_Тег_X_Y_Z
При чтении файл разбивается на строки, а строки через разделитель "_" на свойства. Ну а там уже методом перебора выбирается объект и применяются его свойства . Скрипт пока не дописан и может всплывет чего.


Сообщение отредактировал proektEK - Сб, 07 Авг 2010, 11:08
 
СообщениеВот сижу и думаю над этим

Code
var objscen:GameObject[];
function Start()
{
var obj : GameObject[] = FindObjectsOfType(GameObject);
objscen=obj;
print(objscen[1].name);
print(objscen[2].transform.position.x);
print(objscen[3].gameObject.tag);
}

Список объектов и свойства по индексу. Пока знаний не хватает чтоб это разложить по полкам и сохранить.

Небольшая модификация, перебирает объекты и считывает свойства (в этом скрипте имя и тег)
Code
var objscen:GameObject[];
var nomer=0;
function Start()
{
var obj : GameObject[] = FindObjectsOfType(GameObject);
objscen=obj;
}

function Update()
{
if(nomer<objscen.Length)
{
if(objscen[nomer])
{
print(objscen[nomer].name);
print(objscen[nomer].gameObject.tag);
nomer+=1;
}
}
}



Пока мой файл сохранения вот такой, как теперь это применять к объктам без понятия.



Вроде немного разобрался, список объектов и их основные свойства у меня сохраняются в файл, строка выглядит так:
Directional light_Untagged_0_105,4203_0
Имя_Тег_X_Y_Z
При чтении файл разбивается на строки, а строки через разделитель "_" на свойства. Ну а там уже методом перебора выбирается объект и применяются его свойства . Скрипт пока не дописан и может всплывет чего.

Автор - proektEK
Дата добавления - 07 Авг 2010 в 21:10
СкептикДата: Вс, 08 Авг 2010, 11:54 | Сообщение # 12
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Кстати, как раз сегодня нужно было сериализатор написать. Подумал, что бинарники мне не к чему, взял скрипт по ХМЛ с Вики и немного его переделал. Немного - это чтобы он автоматически сохранял, потом загружал и отчитывался в ГУЙ.

Фанат игр Max Payne и Fahrenheit.
 
СообщениеКстати, как раз сегодня нужно было сериализатор написать. Подумал, что бинарники мне не к чему, взял скрипт по ХМЛ с Вики и немного его переделал. Немного - это чтобы он автоматически сохранял, потом загружал и отчитывался в ГУЙ.

Автор - Скептик
Дата добавления - 08 Авг 2010 в 11:54
proektEKДата: Вс, 08 Авг 2010, 21:09 | Сообщение # 13
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
Я тоже с ним пытался работать, чтоб свой туда запихать, но не получилось.


Может кто знает как из строки: MainCamera_80,91579_1,08_63,49966 координаты перевести в цифры, int.Parse() не помогает. sad Блин скрипт почти готов осталось только эта проблема.


Фу, написал вроде скрипт, конечно глючный но это мелочи, придется добавлять имя объекта, одних тегов мало, если много объектов с одинаковым тегом зацикливается на одном и все координаты назначает ему. Скоро может демку выложу, кому интересно.

Немного потестил, оказался медленным, за 5 секунд перебирает 210 объектов.


Демка, можно поспавнить кубики-"Fire1", сохранить-кнопка V, загрузить-кнопка B. http://vozpogdenie.ucoz.ru/Vozrogd/TestS.rar
 
СообщениеЯ тоже с ним пытался работать, чтоб свой туда запихать, но не получилось.


Может кто знает как из строки: MainCamera_80,91579_1,08_63,49966 координаты перевести в цифры, int.Parse() не помогает. sad Блин скрипт почти готов осталось только эта проблема.


Фу, написал вроде скрипт, конечно глючный но это мелочи, придется добавлять имя объекта, одних тегов мало, если много объектов с одинаковым тегом зацикливается на одном и все координаты назначает ему. Скоро может демку выложу, кому интересно.

Немного потестил, оказался медленным, за 5 секунд перебирает 210 объектов.


Демка, можно поспавнить кубики-"Fire1", сохранить-кнопка V, загрузить-кнопка B. http://vozpogdenie.ucoz.ru/Vozrogd/TestS.rar

Автор - proektEK
Дата добавления - 08 Авг 2010 в 21:09
СкептикДата: Вс, 08 Авг 2010, 22:06 | Сообщение # 14
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Это 210 обьектов вручную задавал или он стандартные типы ищет?

Фанат игр Max Payne и Fahrenheit.
 
СообщениеЭто 210 обьектов вручную задавал или он стандартные типы ищет?

Автор - Скептик
Дата добавления - 08 Авг 2010 в 22:06
proektEKДата: Пт, 13 Авг 2010, 21:58 | Сообщение # 15
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
Спавнил таким же образом как и в демки, все объекты в сцене добавляются в массив при сохранении.


Но так как скрипт неудачный наверно придется вручную задавать все объекты которые надо сохранить.


Quote (Скептик)
По тегу быстрее. Но тогда скорее всего придется надстройку для мультитега прикручивать.

Все верно, что то на подобии мультитегов придется писать или возвращаться к поиску по имени.


Немного изменил код

Сделал, вернее использовал кусок кода с офф. форума Unity 3d, теперь есть список файлов сохранения


Объекты которые надо сохранить добавляются в ручную. Демка скоро.


http://narod.ru/disk/23705293000/SaveTest.rar.html
Просьба, если обнаружите баги сохранения или загрузки, напишите сюда.


Сообщение отредактировал proektEK - Пт, 13 Авг 2010, 22:09
 
СообщениеСпавнил таким же образом как и в демки, все объекты в сцене добавляются в массив при сохранении.


Но так как скрипт неудачный наверно придется вручную задавать все объекты которые надо сохранить.


Quote (Скептик)
По тегу быстрее. Но тогда скорее всего придется надстройку для мультитега прикручивать.

Все верно, что то на подобии мультитегов придется писать или возвращаться к поиску по имени.


Немного изменил код

Сделал, вернее использовал кусок кода с офф. форума Unity 3d, теперь есть список файлов сохранения


Объекты которые надо сохранить добавляются в ручную. Демка скоро.


http://narod.ru/disk/23705293000/SaveTest.rar.html
Просьба, если обнаружите баги сохранения или загрузки, напишите сюда.

Автор - proektEK
Дата добавления - 13 Авг 2010 в 21:58
ЛевшаДата: Пт, 13 Авг 2010, 22:24 | Сообщение # 16
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
proektEK, Опиши подробно, что это по ссылке?

X.cor.R (Prologue)
 
СообщениеproektEK, Опиши подробно, что это по ссылке?

Автор - Левша
Дата добавления - 13 Авг 2010 в 22:24
proektEKДата: Пт, 13 Авг 2010, 22:30 | Сообщение # 17
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
Там демка скрипта сохранения и загрузки (см. скрины). Есть две сцены на одной меню на другой якобы игра. Сохраняется положение камеры и двух кубиков. В игре если нажать V то появится меню где можно написать имя файла и сохранить или вернуться в меню. Скрипты еще пока кривые, так что возможны глюки.

Сообщение отредактировал proektEK - Пт, 13 Авг 2010, 22:31
 
СообщениеТам демка скрипта сохранения и загрузки (см. скрины). Есть две сцены на одной меню на другой якобы игра. Сохраняется положение камеры и двух кубиков. В игре если нажать V то появится меню где можно написать имя файла и сохранить или вернуться в меню. Скрипты еще пока кривые, так что возможны глюки.

Автор - proektEK
Дата добавления - 13 Авг 2010 в 22:30
ЛевшаДата: Пт, 13 Авг 2010, 22:51 | Сообщение # 18
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Версия Unity?

X.cor.R (Prologue)
 
СообщениеВерсия Unity?

Автор - Левша
Дата добавления - 13 Авг 2010 в 22:51
proektEKДата: Пт, 13 Авг 2010, 22:53 | Сообщение # 19
 
Сообщений: 493
Награды: 6
Репутация: 193
Статус: Offline
surprised Наверное любая, у меня сейчас 2.6.1
 
Сообщениеsurprised Наверное любая, у меня сейчас 2.6.1

Автор - proektEK
Дата добавления - 13 Авг 2010 в 22:53
ЛевшаДата: Пт, 13 Авг 2010, 23:18 | Сообщение # 20
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (proektEK)
Наверное любая

Может и нет... Значить 2.6.1


X.cor.R (Prologue)
 
Сообщение
Quote (proektEK)
Наверное любая

Может и нет... Значить 2.6.1

Автор - Левша
Дата добавления - 13 Авг 2010 в 23:18
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025