Unity Editor Урок 1 - Форум - Все для Unity3d

Все для Unity3d> Unity Editor Урок 1 - Форум>
Страница 1 из 11
Форум » Unity » Уроки » Unity Editor Урок 1 (Для тех ,кто уже познал дзен в кодинге и хочиться больше)
Unity Editor Урок 1
mesnikДата: Понедельник, 14.03.2016, 16:31 | Сообщение # 1
Новый писатель
Группа: Пользователи
Сообщений: 48
Статус: Offline
Однако привет,многие из вас читающие эту статью отличают классы от переменных ,точнее строк ,но это чуть позже))) Ну,что же к делу . Многие хотят упростить процесс создания своих игр,например у вас выживалка и приходиться в ручную создавать каждое оружие или ресурс ,а если 100 или даже 1000?! Можно и нужно упростить ,написанием редактора который у будет по шаблону создавать ваши вещи,но до этого ух,как далеко еще ооп надо перепрыгнуть.Вот пример моей работы
 

Сначала было слово и слово это было - "Hello world" ,давайте перейдем от псевдотеории к делу. Создает новый C# скрипт ,создаем папку Editor и кидаем его туда.

Теперь в редактор кода
Наш класс должен унаследовать от EditorWindow,также не забудьте прикрутить библиотеку UnityEditor.

Давайте теперь создадим нашему окну кнопку для запуска
 
Код
[MenuItem("mesnik/HelloWorld")]//можно так
 [MenuItem("Window/HelloWorld")]//можно и сяк
Теперь надо создать метод инициализации окна ,который происходит при вызове окна
  
Код
static void Init()
    {
        HelloWorld window = (HelloWorld)EditorWindow.CreateInstance(typeof(HelloWorld));
        window.minSize = new Vector2(300, 150);//минимальный размер окна
        window.maxSize = new Vector2(300, 150);//максимальный размер окна
        window.Show();//отобразить окно
    }
После ,как окно у нас показалась давайте создадим простой пример ,при нажатие на кнопку будет выводиться текст в Debug и окошке.Для отрисовки интерфейса мы используем функцию OnGUI знакомую всем .кто использовал старый ui unity.Тут она ничем не отличается от обычной ui.Также можно и создать переменные ,например я создам string переменную hello .
 
Код
void OnGUI()
    {

        EditorGUILayout.LabelField(hello);
        if (GUILayout.Button("HelloWorld"))
        {
            hello = "HelloWorld";
        }
    }
Теперь о коде,текст равен переменной hello ,а при нажатие кнопки значение меняется.Ну вот и конец первого урока ,пишите,что непонятно и что пилить дальше ,однако все.
Весь код урока

Код
using UnityEngine;
using UnityEditor;

public class HelloWorld : EditorWindow {
    string hello = "Привет мир";

    [MenuItem("mesnik/HelloWorld")]
    static void Init()
    {
        HelloWorld window = (HelloWorld)EditorWindow.CreateInstance(typeof(HelloWorld));
        window.minSize = new Vector2(300, 150);//минимальный размер окна
        window.maxSize = new Vector2(300, 150);//максимальный размер окна
        window.Show();//отабразить окно
    }
    void OnGUI()//отрисовка интерфейса
    {

        EditorGUILayout.LabelField(hello);//текст

        if (GUILayout.Button("HelloWorld"))//если нажать на кнопку
        {
            hello = "HelloWorld";
        }
    }

}
 
devpilgrimДата: Понедельник, 14.03.2016, 23:40 | Сообщение # 2
Начинающий писатель
Группа: Проверенные
Сообщений: 196
Статус: Offline
Поверхностно.
Все то-же самое но более подробно, профессионально и на русском языке есть в стандартной документации Unity:
Окна редактора (Editor Windows)
Пользовательские редакторы (Custom Editors)
Property Drawers
Выполнение Editor скриптов при запуске редактора Unity
Этих 4х ссылок достаточно для освоения материала желающими писать собственные редакторы и утилиты для Unity.


Готов работать за деньги, или за очень большие деньги.
 
Форум » Unity » Уроки » Unity Editor Урок 1 (Для тех ,кто уже познал дзен в кодинге и хочиться больше)
Страница 1 из 11
Поиск:
Свернуть
Развернуть
Необходима авторизация
0
ТОП-5 САЙТА
НОВЫЕ ИГРЫ
ГОРЯЧИЕ ТЕМЫ
СЛУЧАЙНЫЕ ФАЙЛЫ