Простая сохранялка
proektEK Дата: Вт, 07 Сен 2010, 18:17 | Сообщение # 41
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Приведу пример, хотя я не прогер Code
GameObject[], Object[], //значок [] обозначает массив, то есть список. var chuvaki:GameObject[]=GameObject.FindGameObjectsWithTag ("Vrag");
Здесь chuvaki это список всех объектов с тегом Vrag Чтобы получить этот список а так же свойства объектов в нем делаем вот так Code
for(var g:GameObject in chuvaki) { print(g.name); print(g.transform.position.x); }
или так Code
chuvaki.name[номер объекта];
Сообщение отредактировал Dekterev - Чт, 01 Дек 2011, 21:10
Сообщение Приведу пример, хотя я не прогер Code
GameObject[], Object[], //значок [] обозначает массив, то есть список. var chuvaki:GameObject[]=GameObject.FindGameObjectsWithTag ("Vrag");
Здесь chuvaki это список всех объектов с тегом Vrag Чтобы получить этот список а так же свойства объектов в нем делаем вот так Code
for(var g:GameObject in chuvaki) { print(g.name); print(g.transform.position.x); }
или так Code
chuvaki.name[номер объекта];
Автор - proektEK Дата добавления - 07 Сен 2010 в 18:17
Левша Дата: Вт, 07 Сен 2010, 18:40 | Сообщение # 42
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
И в чем тут проблема? ты практически уже вставил массив в скрипт...
X.cor.R (Prologue)
Сообщение И в чем тут проблема? ты практически уже вставил массив в скрипт... Автор - Левша Дата добавления - 07 Сен 2010 в 18:40
proektEK Дата: Вт, 07 Сен 2010, 18:49 | Сообщение # 43
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Дело в том что таким способом сохранится лишь последний объект из списка, ладно буду разбираться дальше. Левша не забивай голову, я может туплю и все проще простого.
Сообщение Дело в том что таким способом сохранится лишь последний объект из списка, ладно буду разбираться дальше. Левша не забивай голову, я может туплю и все проще простого. Автор - proektEK Дата добавления - 07 Сен 2010 в 18:49
Левша Дата: Вт, 07 Сен 2010, 18:58 | Сообщение # 44
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Quote (proektEK )
и все проще простого.
Надеюсь, потому что мне скоро придеться тоже этим вопросом заняться... И все таки интуитивно чую, что надо другим путем идти, стандартные как правило замороченные слишком...
X.cor.R (Prologue)
Сообщение Quote (proektEK )
и все проще простого.
Надеюсь, потому что мне скоро придеться тоже этим вопросом заняться... И все таки интуитивно чую, что надо другим путем идти, стандартные как правило замороченные слишком...Автор - Левша Дата добавления - 07 Сен 2010 в 18:58
proektEK Дата: Вт, 07 Сен 2010, 19:16 | Сообщение # 45
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Quote (Левша )
И все таки интуитивно чую, что надо другим путем идти, стандартные как правило замороченные слишком...
Скорее всего так и есть. Сейчас разбираю систему SAVE AND LOAD BINARY
Сообщение Quote (Левша )
И все таки интуитивно чую, что надо другим путем идти, стандартные как правило замороченные слишком...
Скорее всего так и есть. Сейчас разбираю систему SAVE AND LOAD BINARY Автор - proektEK Дата добавления - 07 Сен 2010 в 19:16
Скептик Дата: Вт, 07 Сен 2010, 19:39 | Сообщение # 46
Мыслитель
Сообщений: 5860
Награды:
48
Репутация:
1731
Статус: Offline
Я где-то видел скрипт перебора. Можно многократно изменять имя переменной, а затем из полученных собрать массив.
Фанат игр Max Payne и Fahrenheit.
Сообщение Я где-то видел скрипт перебора. Можно многократно изменять имя переменной, а затем из полученных собрать массив. Автор - Скептик Дата добавления - 07 Сен 2010 в 19:39
proektEK Дата: Чт, 09 Сен 2010, 22:42 | Сообщение # 47
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Quote (proektEK )
Сейчас разбираю систему SAVE AND LOAD BINARY
Вроде разобрался, теперь выбранные мной объекты сохраняются, а вернее их позиции. Завтра выложу демку, единственный минус скрипты на C#. Теперь в планах добиться получать переменные у объектов и сохранять их.
Сообщение Quote (proektEK )
Сейчас разбираю систему SAVE AND LOAD BINARY
Вроде разобрался, теперь выбранные мной объекты сохраняются, а вернее их позиции. Завтра выложу демку, единственный минус скрипты на C#. Теперь в планах добиться получать переменные у объектов и сохранять их.Автор - proektEK Дата добавления - 09 Сен 2010 в 22:42
Левша Дата: Чт, 09 Сен 2010, 23:05 | Сообщение # 48
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Quote (proektEK )
Теперь в планах добиться получать переменные у объектов и сохранять их.
А если на каждый обьект повесить еще по стандартному скриптику? В котором будут собраны все необходимые переменные и их значения, которые постоянно будут обновляться до их последнего значения. Все переменные сделать общедоступными и перед сейвом их считать, а после загрузки им же вернуть. В принципе каждый обьект нам и не нужен, нужны лишь изменяемые, ключевые обьекты, а их в игре не так уж и много. Статике это нафиг не нужно.
X.cor.R (Prologue)
Сообщение Quote (proektEK )
Теперь в планах добиться получать переменные у объектов и сохранять их.
А если на каждый обьект повесить еще по стандартному скриптику? В котором будут собраны все необходимые переменные и их значения, которые постоянно будут обновляться до их последнего значения. Все переменные сделать общедоступными и перед сейвом их считать, а после загрузки им же вернуть. В принципе каждый обьект нам и не нужен, нужны лишь изменяемые, ключевые обьекты, а их в игре не так уж и много. Статике это нафиг не нужно.Автор - Левша Дата добавления - 09 Сен 2010 в 23:05
proektEK Дата: Пт, 10 Сен 2010, 21:18 | Сообщение # 49
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Quote (Левша )
В принципе каждый обьект нам и не нужен, нужны лишь изменяемые, ключевые обьекты, а их в игре не так уж и много. Статике это нафиг не нужно.
В скрипте сам задаешь те объекты которые нужны, на счет переменных вроде все ок, сегодня потестил. Не удалось сегодня собрать демку, могу только показать файл сохранения: Code
<?xml version="1.0" encoding="utf-8"?> <ArrayOfObjectSaver xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ObjectSaver> <objectName>First Person Controller</objectName> <position> <x>1215.93</x> <y>15.30845</y> <z>640.7601</z> </position> <health>2</health> </ObjectSaver> <ObjectSaver> <objectName>Chuvak1</objectName> <position> <x>1164.853</x> <y>20.82947</y> <z>404.4395</z> </position> <objectN>Vrag</objectN> <health>11</health> </ObjectSaver> <ObjectSaver> <objectName>Chuvak2</objectName> <position> <x>1096.564</x> <y>20.82947</y> <z>487.9405</z> </position> <objectN>Vrag</objectN> <health>12</health> </ObjectSaver> <ObjectSaver> <objectName>Chuvak3</objectName> <position> <x>1236.791</x> <y>20.82947</y> <z>552.988</z> </position> <objectN>Vrag</objectN> <health>13</health> </ObjectSaver> </ArrayOfObjectSaver>
Сообщение Quote (Левша )
В принципе каждый обьект нам и не нужен, нужны лишь изменяемые, ключевые обьекты, а их в игре не так уж и много. Статике это нафиг не нужно.
В скрипте сам задаешь те объекты которые нужны, на счет переменных вроде все ок, сегодня потестил. Не удалось сегодня собрать демку, могу только показать файл сохранения: Code
<?xml version="1.0" encoding="utf-8"?> <ArrayOfObjectSaver xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ObjectSaver> <objectName>First Person Controller</objectName> <position> <x>1215.93</x> <y>15.30845</y> <z>640.7601</z> </position> <health>2</health> </ObjectSaver> <ObjectSaver> <objectName>Chuvak1</objectName> <position> <x>1164.853</x> <y>20.82947</y> <z>404.4395</z> </position> <objectN>Vrag</objectN> <health>11</health> </ObjectSaver> <ObjectSaver> <objectName>Chuvak2</objectName> <position> <x>1096.564</x> <y>20.82947</y> <z>487.9405</z> </position> <objectN>Vrag</objectN> <health>12</health> </ObjectSaver> <ObjectSaver> <objectName>Chuvak3</objectName> <position> <x>1236.791</x> <y>20.82947</y> <z>552.988</z> </position> <objectN>Vrag</objectN> <health>13</health> </ObjectSaver> </ArrayOfObjectSaver>
Автор - proektEK Дата добавления - 10 Сен 2010 в 21:18
Скептик Дата: Пт, 10 Сен 2010, 23:58 | Сообщение # 50
Мыслитель
Сообщений: 5860
Награды:
48
Репутация:
1731
Статус: Offline
ХМЛ все-таки. Нужные переменные присваиваем в Инспекторе или прописываем в теле скрипта?
Фанат игр Max Payne и Fahrenheit.
Сообщение ХМЛ все-таки. Нужные переменные присваиваем в Инспекторе или прописываем в теле скрипта? Автор - Скептик Дата добавления - 10 Сен 2010 в 23:58
proektEK Дата: Сб, 11 Сен 2010, 22:13 | Сообщение # 51
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Quote (Скептик )
ХМЛ все-таки.
Да пока в XML, поначалу были мелкие пакости поэтому его и выбрал чтоб смотреть что сохраняется, а для бинарника придется писать свои классы, чтоб сохранять позицию, поворот и так далее. Quote (Скептик )
Нужные переменные присваиваем в Инспекторе или прописываем в теле скрипта?
Все переменные прописываем в скрипте. Кто нибудь знает как передавать значения переменной из JS в C# и наоборот?
Сообщение Quote (Скептик )
ХМЛ все-таки.
Да пока в XML, поначалу были мелкие пакости поэтому его и выбрал чтоб смотреть что сохраняется, а для бинарника придется писать свои классы, чтоб сохранять позицию, поворот и так далее. Quote (Скептик )
Нужные переменные присваиваем в Инспекторе или прописываем в теле скрипта?
Все переменные прописываем в скрипте. Кто нибудь знает как передавать значения переменной из JS в C# и наоборот?Автор - proektEK Дата добавления - 11 Сен 2010 в 22:13
Скептик Дата: Вс, 12 Сен 2010, 00:11 | Сообщение # 52
Мыслитель
Сообщений: 5860
Награды:
48
Репутация:
1731
Статус: Offline
Через static var наверняка. Я знаю лишь, что обратный путь проще.
Фанат игр Max Payne и Fahrenheit.
Сообщение Через static var наверняка. Я знаю лишь, что обратный путь проще. Автор - Скептик Дата добавления - 12 Сен 2010 в 00:11
Левша Дата: Вс, 12 Сен 2010, 04:49 | Сообщение # 53
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Quote (Скептик )
Через static var наверняка.
Да, кстати работает, я делал так.
X.cor.R (Prologue)
Сообщение Quote (Скептик )
Через static var наверняка.
Да, кстати работает, я делал так.Автор - Левша Дата добавления - 12 Сен 2010 в 04:49
proektEK Дата: Вс, 12 Сен 2010, 16:17 | Сообщение # 54
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Перепробовал все что мог, но так и ничего не получилось, между JS и JS все работает а с C# не выходит, есть только мысля записывать переменные в файл а потом считывать.
Сообщение Перепробовал все что мог, но так и ничего не получилось, между JS и JS все работает а с C# не выходит, есть только мысля записывать переменные в файл а потом считывать. Автор - proektEK Дата добавления - 12 Сен 2010 в 16:17
Левша Дата: Вс, 12 Сен 2010, 17:01 | Сообщение # 55
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
proektEK , не может быть... работает, я делал. Обьяви в JS > Code
static var blaBla = 0;
А потом ис C# обращаешься Code
Имя скрипта.blaBla = 1;
Или допустим: Code
if (Имя скрипта.blaBla= =1) { ....... }
Все работает...
X.cor.R (Prologue)
Сообщение отредактировал Dekterev - Чт, 01 Дек 2011, 21:13
Сообщение proektEK , не может быть... работает, я делал. Обьяви в JS > Code
static var blaBla = 0;
А потом ис C# обращаешься Code
Имя скрипта.blaBla = 1;
Или допустим: Code
if (Имя скрипта.blaBla= =1) { ....... }
Все работает...Автор - Левша Дата добавления - 12 Сен 2010 в 17:01
proektEK Дата: Вс, 12 Сен 2010, 17:51 | Сообщение # 56
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Ничего не понимаю, у меня не работает такой метод, C# и C# или JS и JS без проблем.
Сообщение Ничего не понимаю, у меня не работает такой метод, C# и C# или JS и JS без проблем. Автор - proektEK Дата добавления - 12 Сен 2010 в 17:51
Левша Дата: Вс, 12 Сен 2010, 18:00 | Сообщение # 57
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Странно... , а ты имя скрипта с Большой буквы писал? Можно еще наоборот попробовать из JS изменять значение переменных в C#.
X.cor.R (Prologue)
Сообщение Странно... , а ты имя скрипта с Большой буквы писал? Можно еще наоборот попробовать из JS изменять значение переменных в C#. Автор - Левша Дата добавления - 12 Сен 2010 в 18:00
proektEK Дата: Вс, 12 Сен 2010, 21:41 | Сообщение # 58
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Да я и большой и с маленькой пробовал Quote (Левша )
Можно еще наоборот попробовать из JS изменять значение переменных в C#.
Тоже пробовал. Оптимизировал свой плагин, теперь не глючит. Создать в Editor js скрипт с именем "Obj", скопировать в него это Code
import System.IO; import UnityEditor; import UnityEngine; class Obj extends EditorWindow { private var scrollPosition:Vector2 ; @MenuItem ("proektEk/Demka") static function ObjWindow () { var window : Obj = EditorWindow.GetWindow(Obj); window.Show (); window.minSize = new Vector2(400, 500); } //var fon:Texture2D=Resources.Load("указываем тектуру", Texture2D); private var setc:ArrayList = new ArrayList (); private var sets:ArrayList = new ArrayList (); var testname:String; function OnGUI () { GUILayout.BeginHorizontal( GUI.skin.GetStyle( "Box" ) ); GUILayout.Label ("Selected Script"+" : "+testname, EditorStyles.boldLabel); if( GUILayout.Button( "Refresh" ) ) { UpdateList(); } GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); //GUI.DrawTexture (Rect (0,0, Screen.width, Screen.height), fon); scrollPosition = GUILayout.BeginScrollView(scrollPosition); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); var obj : GameObject[] = FindObjectsOfType(GameObject); for(var line:GameObject in obj) { GUILayout.Label(line.name, EditorStyles.boldLabel) ; //Кнопки Добавить Удалить=================================== GUILayout.BeginHorizontal(); if(GUILayout.Button("Add script",GUILayout.Width(80))) { line.AddComponent (testname); } if(GUILayout.Button("Delet script",GUILayout.Width(80))) { DestroyImmediate(line.GetComponent (testname)); } EditorGUILayout.EndHorizontal(); //Кнопки Добавить Удалить=================================== } EditorGUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.Label ("JScript", EditorStyles.boldLabel); for(var file:String in sets) { if( GUILayout.Button(file.Remove(file.Length-3,3), GUILayout.Width(100)) ) { testname=file.Remove(file.Length-3,3); } } EditorGUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.Label ("CScript", EditorStyles.boldLabel); for(var filec:String in setc) { if( GUILayout.Button(filec.Remove(filec.Length-3,3), GUILayout.Width(100)) ) { testname=filec.Remove(filec.Length-3,3); } } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); GUILayout.EndScrollView (); } function UpdateList() { var dir:DirectoryInfo = new DirectoryInfo(Application.dataPath); for(var file:FileInfo in dir.GetFiles("*.js",SearchOption.AllDirectories)) { sets.Add(file.Name); } var dircs:DirectoryInfo = new DirectoryInfo(Application.dataPath); for(var file:FileInfo in dircs.GetFiles("*.cs",SearchOption.AllDirectories)) { setc.Add(file.Name); } } }
Сообщение отредактировал proektEK - Вс, 12 Сен 2010, 21:42
Сообщение Да я и большой и с маленькой пробовал Quote (Левша )
Можно еще наоборот попробовать из JS изменять значение переменных в C#.
Тоже пробовал. Оптимизировал свой плагин, теперь не глючит. Создать в Editor js скрипт с именем "Obj", скопировать в него это Code
import System.IO; import UnityEditor; import UnityEngine; class Obj extends EditorWindow { private var scrollPosition:Vector2 ; @MenuItem ("proektEk/Demka") static function ObjWindow () { var window : Obj = EditorWindow.GetWindow(Obj); window.Show (); window.minSize = new Vector2(400, 500); } //var fon:Texture2D=Resources.Load("указываем тектуру", Texture2D); private var setc:ArrayList = new ArrayList (); private var sets:ArrayList = new ArrayList (); var testname:String; function OnGUI () { GUILayout.BeginHorizontal( GUI.skin.GetStyle( "Box" ) ); GUILayout.Label ("Selected Script"+" : "+testname, EditorStyles.boldLabel); if( GUILayout.Button( "Refresh" ) ) { UpdateList(); } GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); //GUI.DrawTexture (Rect (0,0, Screen.width, Screen.height), fon); scrollPosition = GUILayout.BeginScrollView(scrollPosition); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); var obj : GameObject[] = FindObjectsOfType(GameObject); for(var line:GameObject in obj) { GUILayout.Label(line.name, EditorStyles.boldLabel) ; //Кнопки Добавить Удалить=================================== GUILayout.BeginHorizontal(); if(GUILayout.Button("Add script",GUILayout.Width(80))) { line.AddComponent (testname); } if(GUILayout.Button("Delet script",GUILayout.Width(80))) { DestroyImmediate(line.GetComponent (testname)); } EditorGUILayout.EndHorizontal(); //Кнопки Добавить Удалить=================================== } EditorGUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.Label ("JScript", EditorStyles.boldLabel); for(var file:String in sets) { if( GUILayout.Button(file.Remove(file.Length-3,3), GUILayout.Width(100)) ) { testname=file.Remove(file.Length-3,3); } } EditorGUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.Label ("CScript", EditorStyles.boldLabel); for(var filec:String in setc) { if( GUILayout.Button(filec.Remove(filec.Length-3,3), GUILayout.Width(100)) ) { testname=filec.Remove(filec.Length-3,3); } } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); GUILayout.EndScrollView (); } function UpdateList() { var dir:DirectoryInfo = new DirectoryInfo(Application.dataPath); for(var file:FileInfo in dir.GetFiles("*.js",SearchOption.AllDirectories)) { sets.Add(file.Name); } var dircs:DirectoryInfo = new DirectoryInfo(Application.dataPath); for(var file:FileInfo in dircs.GetFiles("*.cs",SearchOption.AllDirectories)) { setc.Add(file.Name); } } }
Автор - proektEK Дата добавления - 12 Сен 2010 в 21:41
Dekterev Дата: Чт, 01 Дек 2011, 21:16 | Сообщение # 59
Сообщений: 1753
Награды:
16
Репутация:
892
Статус: Offline
Обсуждение вынесено в отдельную тему из темы Скрипты .
Поиск | Правила | Новые сообщения
Сообщение Обсуждение вынесено в отдельную тему из темы Скрипты . Автор - Dekterev Дата добавления - 01 Дек 2011 в 21:16
Левша Дата: Чт, 01 Дек 2011, 22:59 | Сообщение # 60
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Quote (proektEK )
Создать в Editor js скрипт с именем "Obj", скопировать в него это
А инструкции? наверняка этим дело не кончаеться...
X.cor.R (Prologue)
Сообщение Quote (proektEK )
Создать в Editor js скрипт с именем "Obj", скопировать в него это
А инструкции? наверняка этим дело не кончаеться... Автор - Левша Дата добавления - 01 Дек 2011 в 22:59