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 |
|
| |