Суббота, 20 Апреля 2024, 09:27

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Урок по редактору. Window (мой первый урок по работе с редактором.)
Урок по редактору. Window
KiraДата: Четверг, 15 Ноября 2012, 17:22 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Урок 1: Создание окна.
Создадим свое окно редактора, которое может свободно перемещать и может быть закреплено в виде вкладки
Для начала поучимся создавать собственные окна. Это не трудно.

Создадим скрипт С# : MyWindow.cs и поместим в папку Editor
Code

using UnityEngine;
using System.Collections;
using UnityEditor; // Добавим пространство имен Редактора

public class MyWindow : EditorWindow {

    [MenuItem("Window/My windows")]
// Добавит в меню нашу функцию. Поэтому писать ее нужно перед главной функцией вызова окна.

    static void Init() // Функция должна быть static
    {
     MyWindow MyWindow window=(MyWindow)EditorWindow.GetWindow(typeof(MyWindow),false,":)Win");
    }
       
}

вот на всякий случай описание функции:
static function GetWindow (t : System.Type, utility : boolean = false, title : String = null, focus : boolean = true) : EditorWindow

Если выбрать в меню: Window/My windows, то мы увидим пустое окно.

Не будем далеко отходить от темы и добавим 2е окно.
Создадим переменную Rectэто будет размер и положение нашего 2го окна.
Rect rWindow = new Rect (20, 20, 300, 300);//Window

В функции OnGUI() произведем вызов нашего окошка.

void OnGUI()
{
BeginWindows();
rWindow=GUI.Window(0,rWindow,WinFunc,"2@Window");
EndWindows();
}
Описание функции
static function Window (id : int, clientRect : Rect, func : WindowFunction, text : String) :Rect

Обратите внимание на WinFunc, это имя функции которое будет вызываться 2м окном. Поэтому ее тоже нужно добавить.

void WinFunc(int winID)
{
if(winID==0) // Эту функцию может вызывать несколько окон, различать их можно по ID.
GUI.DragWindow();// Эта функция позволит перемещать окно мышкой.
}

Весь код:
Code

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.Collections.Generic;

public class MyWindow : EditorWindow
{
    Rect rWindow = new Rect (0, 20, 300, 300);//Window
    [MenuItem("Window/My windows")]
    static void Init ()
    {
     MyWindow window = (MyWindow)EditorWindow.GetWindow (typeof(MyWindow), false, ":)Win");    
    }
       
    void OnGUI()
    {
     BeginWindows();
     rWindow=GUI.Window(0,rWindow,WinFunc,"2@Window");
     EndWindows();
    }    
    void WinFunc(int winID)
    {
     if(winID==0) GUI.DragWindow();
    }
}

Добавлено (15.11.2012, 17:22)
---------------------------------------------
Урок 2: GUI


Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн


Сообщение отредактировал Kira - Четверг, 15 Ноября 2012, 16:53
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Урок по редактору. Window (мой первый урок по работе с редактором.)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг