Как сохранять значения в Editor Window
Altair Дата: Сб, 27 Окт 2012, 12:01 | Сообщение # 1
Unity 3D PRO Developer
Сообщений: 758
Награды:
6
Репутация:
195
Статус: Offline
Привет всем,я вот щас пишу смену дня и ночи,и решил одновременно писать Editor Window GUI под неё.ВРоде начала нормально написал .. но,когда ввожу те или иные значения ,А потом закрываю это окно они не сохраняються,тоесть если снова открыть это окно то все значения буду по умолчанию.А теперь вопрос.Кто-то знает как можно ети значения сохранять ?Если кто знает ,помогите пожалуйста.
Сообщение Привет всем,я вот щас пишу смену дня и ночи,и решил одновременно писать Editor Window GUI под неё.ВРоде начала нормально написал .. но,когда ввожу те или иные значения ,А потом закрываю это окно они не сохраняються,тоесть если снова открыть это окно то все значения буду по умолчанию.А теперь вопрос.Кто-то знает как можно ети значения сохранять ?Если кто знает ,помогите пожалуйста. Автор - Altair Дата добавления - 27 Окт 2012 в 12:01
Hunjeth Дата: Сб, 27 Окт 2012, 15:04 | Сообщение # 2
Сообщений: 354
Награды:
1
Репутация:
112
Статус: Offline
в юнити не пробовал такое но в визуал басик когда новое окно все настройки старые надо когда окно окрываеться прочитать какое значине щас стоят и установить в новом окне
Сообщение отредактировал Hunjeth - Сб, 27 Окт 2012, 15:11
Сообщение в юнити не пробовал такое но в визуал басик когда новое окно все настройки старые надо когда окно окрываеться прочитать какое значине щас стоят и установить в новом окне Автор - Hunjeth Дата добавления - 27 Окт 2012 в 15:04
seaman Дата: Сб, 27 Окт 2012, 17:27 | Сообщение # 3
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
А кто мешает использовать PlayerPrefs?
Сообщение А кто мешает использовать PlayerPrefs? Автор - seaman Дата добавления - 27 Окт 2012 в 17:27
Hunjeth Дата: Сб, 27 Окт 2012, 17:31 | Сообщение # 4
Сообщений: 354
Награды:
1
Репутация:
112
Статус: Offline
seaman, а что используют например чтобы сохронять графику (модели текстуры) ? я хочу сделать что то типа рунтайм редактора простых линий даже нету в рунтайме
Сообщение отредактировал Hunjeth - Сб, 27 Окт 2012, 17:34
Сообщение seaman, а что используют например чтобы сохронять графику (модели текстуры) ? я хочу сделать что то типа рунтайм редактора простых линий даже нету в рунтайме Автор - Hunjeth Дата добавления - 27 Окт 2012 в 17:31
seaman Дата: Сб, 27 Окт 2012, 17:43 | Сообщение # 5
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Меш элементарно сохранить в таком формате,какой нравится. Хоть в obj, хоть в 3ds, хоть в своем формате. Текстуры проще в png, т.к. есть Texture2D.EncodeToPNG Материалы самому сохранить не так просто, но тоже можно. А вот шейдеры только в бандлы похоже.
Сообщение Меш элементарно сохранить в таком формате,какой нравится. Хоть в obj, хоть в 3ds, хоть в своем формате. Текстуры проще в png, т.к. есть Texture2D.EncodeToPNG Материалы самому сохранить не так просто, но тоже можно. А вот шейдеры только в бандлы похоже. Автор - seaman Дата добавления - 27 Окт 2012 в 17:43
Hunjeth Дата: Сб, 27 Окт 2012, 17:53 | Сообщение # 6
Сообщений: 354
Награды:
1
Репутация:
112
Статус: Offline
а как ты думаешь если unityeditor.dll или unityengine.dll разобрать и выдрать ту самую схему по каторой работают линии Debug.DrawRay немного изменить систему это будет работать в рунтайме? так как в редакторе в игре работает все
Сообщение отредактировал Hunjeth - Сб, 27 Окт 2012, 18:12
Сообщение а как ты думаешь если unityeditor.dll или unityengine.dll разобрать и выдрать ту самую схему по каторой работают линии Debug.DrawRay немного изменить систему это будет работать в рунтайме? так как в редакторе в игре работает все Автор - Hunjeth Дата добавления - 27 Окт 2012 в 17:53
seaman Дата: Сб, 27 Окт 2012, 18:13 | Сообщение # 7
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
1. Разобрать Debug.DrawRay легко, но это ничего не даст. Сама отрисовка идет не с менедж коде, а в натив: Code
public static void DrawLine(Vector3 start, Vector3 end) { float duration = 0f; Color white = Color.white; INTERNAL_CALL_DrawLine(ref start, ref end, ref white, duration); } public static void DrawLine(Vector3 start, Vector3 end, Color color) { float duration = 0f; INTERNAL_CALL_DrawLine(ref start, ref end, ref color, duration); } public static void DrawLine(Vector3 start, Vector3 end, Color color, float duration) { INTERNAL_CALL_DrawLine(ref start, ref end, ref color, duration); } public static void DrawRay(Vector3 start, Vector3 dir) { float duration = 0f; Color white = Color.white; DrawRay(start, dir, white, duration); } public static void DrawRay(Vector3 start, Vector3 dir, Color color) { float duration = 0f; DrawRay(start, dir, color, duration); } public static void DrawRay(Vector3 start, Vector3 dir, Color color, float duration) { DrawLine(start, start + dir, color, duration); }
2. Может подойдет это: GL.LINES (В ПРО только) или Vectrosity (точно не помню как плагин называется для отрисовки линий)
Сообщение 1. Разобрать Debug.DrawRay легко, но это ничего не даст. Сама отрисовка идет не с менедж коде, а в натив: Code
public static void DrawLine(Vector3 start, Vector3 end) { float duration = 0f; Color white = Color.white; INTERNAL_CALL_DrawLine(ref start, ref end, ref white, duration); } public static void DrawLine(Vector3 start, Vector3 end, Color color) { float duration = 0f; INTERNAL_CALL_DrawLine(ref start, ref end, ref color, duration); } public static void DrawLine(Vector3 start, Vector3 end, Color color, float duration) { INTERNAL_CALL_DrawLine(ref start, ref end, ref color, duration); } public static void DrawRay(Vector3 start, Vector3 dir) { float duration = 0f; Color white = Color.white; DrawRay(start, dir, white, duration); } public static void DrawRay(Vector3 start, Vector3 dir, Color color) { float duration = 0f; DrawRay(start, dir, color, duration); } public static void DrawRay(Vector3 start, Vector3 dir, Color color, float duration) { DrawLine(start, start + dir, color, duration); }
2. Может подойдет это: GL.LINES (В ПРО только) или Vectrosity (точно не помню как плагин называется для отрисовки линий) Автор - seaman Дата добавления - 27 Окт 2012 в 18:13
Altair Дата: Сб, 27 Окт 2012, 18:20 | Сообщение # 8
Unity 3D PRO Developer
Сообщений: 758
Награды:
6
Репутация:
195
Статус: Offline
Пацаны ,вы что тут обсуждаете ?!Как мне помочь ?!
Сообщение Пацаны ,вы что тут обсуждаете ?!Как мне помочь ?! Автор - Altair Дата добавления - 27 Окт 2012 в 18:20
Hunjeth Дата: Сб, 27 Окт 2012, 18:20 | Сообщение # 9
Сообщений: 354
Награды:
1
Репутация:
112
Статус: Offline
про GL.LINES и Vectrosity я знаю это все херня так как в Vectrosity линия это меш из 4 точек а GL.LINES глючит с цветами и вообще
Сообщение про GL.LINES и Vectrosity я знаю это все херня так как в Vectrosity линия это меш из 4 точек а GL.LINES глючит с цветами и вообще Автор - Hunjeth Дата добавления - 27 Окт 2012 в 18:20
Altair Дата: Сб, 27 Окт 2012, 18:23 | Сообщение # 10
Unity 3D PRO Developer
Сообщений: 758
Награды:
6
Репутация:
195
Статус: Offline
как сохранить значения переменных перед закрытием окна ? // JavaScript example: class MyWindow extends EditorWindow { var myString = "Hello World"; var groupEnabled = false; var myBool = true; var myFloat = 1.23; // Add menu named "My Window" to the Window menu @MenuItem ("Window/My Window") static function Init () { // Get existing open window or if none, make a new one: var window = ScriptableObject.CreateInstance.<MyWindow>(); } function OnGUI () { GUILayout.Label ("Base Settings", EditorStyles.boldLabel); myString = EditorGUILayout.TextField ("Text Field", myString); groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled); myBool = EditorGUILayout.Toggle ("Toggle", myBool); myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3); EditorGUILayout.EndToggleGroup (); } }Добавлено (27.10.2012, 18:23) --------------------------------------------- Я знаю два способа.1- это то,что сделать это окно как отображение каких-то переменных другого скрипта.2-это просто поместить это окно в ряд с Scene и Game,
Сообщение как сохранить значения переменных перед закрытием окна ? // JavaScript example: class MyWindow extends EditorWindow { var myString = "Hello World"; var groupEnabled = false; var myBool = true; var myFloat = 1.23; // Add menu named "My Window" to the Window menu @MenuItem ("Window/My Window") static function Init () { // Get existing open window or if none, make a new one: var window = ScriptableObject.CreateInstance.<MyWindow>(); } function OnGUI () { GUILayout.Label ("Base Settings", EditorStyles.boldLabel); myString = EditorGUILayout.TextField ("Text Field", myString); groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled); myBool = EditorGUILayout.Toggle ("Toggle", myBool); myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3); EditorGUILayout.EndToggleGroup (); } }Добавлено (27.10.2012, 18:23) --------------------------------------------- Я знаю два способа.1- это то,что сделать это окно как отображение каких-то переменных другого скрипта.2-это просто поместить это окно в ряд с Scene и Game,
Автор - Altair Дата добавления - 27 Окт 2012 в 18:23
seaman Дата: Сб, 27 Окт 2012, 18:29 | Сообщение # 11
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Повторяю: Quote
А кто мешает использовать PlayerPrefs?
Сообщение Повторяю: Quote
А кто мешает использовать PlayerPrefs?
Автор - seaman Дата добавления - 27 Окт 2012 в 18:29
Altair Дата: Сб, 27 Окт 2012, 18:33 | Сообщение # 12
Unity 3D PRO Developer
Сообщений: 758
Награды:
6
Репутация:
195
Статус: Offline
seaman , блин,повторяю...Ты лучше покажи пример,ато я не знаю как можно взаемодействовать префс с гуи окном... .
Сообщение seaman , блин,повторяю...Ты лучше покажи пример,ато я не знаю как можно взаемодействовать префс с гуи окном... .Автор - Altair Дата добавления - 27 Окт 2012 в 18:33
seaman Дата: Сб, 27 Окт 2012, 18:40 | Сообщение # 13
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Quote
как можно взаемодействовать префс с гуи окном
Точно так же как со всем остальным
Сообщение Quote
как можно взаемодействовать префс с гуи окном
Точно так же как со всем остальнымАвтор - seaman Дата добавления - 27 Окт 2012 в 18:40
Altair Дата: Сб, 27 Окт 2012, 22:22 | Сообщение # 14
Unity 3D PRO Developer
Сообщений: 758
Награды:
6
Репутация:
195
Статус: Offline
seaman , понятно...!
Сообщение seaman , понятно...!Автор - Altair Дата добавления - 27 Окт 2012 в 22:22