Я тут подумал,что тема для новичков будет полезна,сильно не ругайте если что не так
1. Загрузка уровней по кнопке
Code
function OnGUI () { // Make a background box GUI.Box (Rect (10,10,100,90), "Loader Menu");
// Make the first button. If it is pressed, Application.Loadlevel (1) will be executed if (GUI.Button (Rect (20,40,80,20), "Level 1")) { Application.LoadLevel (1); }
// Make the second button. if (GUI.Button (Rect (20,70,80,20), "Level 2")) { Application.LoadLevel (2); } }
function OnGUI () { GUI.Label (Rect (0,0,100,50), "Текстовая строка для управления Labell"); }
4.GUI Texture скриптом
Code
var controlTexture : Texture2D;
function OnGUI () { GUI.Label (Rect (0,0,100,50), controlTexture); }
5. Картинка с иконкой внутри
Code
var icon : Texture2D;
function OnGUI () { if (GUI.Button (Rect (10,10, 100, 50), icon)) { print ("Вы кликнули на иконку:D"); }
if (GUI.Button (Rect (10,70, 100, 20), "This is text")) { print ("Вы кликнули на текст:D"); } }
6.Существует и третий вариант, который позволяет отображать изображения и текст вместе в GUI управления. Вы можете предоставить GUIContent объект как содержание аргумент, и определить строку и изображение, которое отображается в GUIContent.(Google рулит,сам не осилил)
Code
var icon : Texture2D;
function OnGUI () { GUI.Box (Rect (10,10,100,50), GUIContent("This is text", icon)); }
7.Вы можете также определить Tooltip в GUIContent, и показать его в других GUI при наведении мыши.
Code
function OnGUI () { // This line feeds "This is the tooltip" into GUI.tooltip GUI.Button (Rect (10,10,100,20), GUIContent ("Click me", "This is the tooltip")); // This line reads and displays the contents of GUI.tooltip GUI.Label (Rect (10,40,100,20), gui.tooltip); }
8.
Вы можете использовать GUIContent для отображения текста, иконки, и подсказки!
Code
var icon : Texture2D;
function OnGUI () { GUI.Button (Rect (10,10,100,20), GUIContent ("Click me", icon "This is the tooltip")); GUI.Label (Rect (10,40,100,20), gui.tooltip); }
9.
TextField будет всегда отображать строку. Вы должны предоставить строку, которая будет отображаться в TextField. Когда изменения вносятся в строку, функция TextField вернется редактировать строки.
11.Активные кнопки на панели инструментов отслеживаются через целое. Вы должны предоставить целое в качестве аргумента в функцию. Чтобы панель инструментов интерактивного, вы должны назначить целого числа возвращаемого значения функции.количество элементов в содержании массив, который вы предоставляете будет определять количество кнопок, которые показаны на панели инструментов.
Code
var toolbarInt = 0; var toolbarStrings : String[] = ["Toolbar1", "Toolbar2", "Toolbar3"];
var scrollViewVector : Vector2 = Vector2.zero; var innerText : String = "I am inside the ScrollView";
function OnGUI () { // Begin the ScrollView scrollViewVector = GUI.BeginScrollView (Rect (25, 25, 100, 100), scrollViewVector, Rect (0, 0, 400, 400));
// Put something inside the ScrollView innerText = GUI.TextArea (Rect (0, 0, 400, 400), innerText);
// End the ScrollView GUI.EndScrollView(); }
18.Окно
Code
var windowRect : Rect = Rect (20, 20, 120, 50);
function OnGUI () { windowRect = GUI.Window (0, windowRect, WindowFunction, "My Window"); }
function WindowFunction (windowID : int) { // Draw any Controls inside the window here }
19.Чтобы обнаружить, если пользователь сделал какие-либо действия в GUI (нажата кнопка, вытащили слайдер, и т.д.), читать GUI.changed значение из сценария. Это приобретает значение верно, когда пользователь сделал что-то, что делает его легким для проверки пользовательского ввода.
общий сценарий был бы для панели инструментов, где вы хотите изменить конкретное значение на основании которых на панели инструментов была нажата. Вы же не хотите, чтобы присвоить значение в каждом вызове OnGUI (), только тогда, когда на одну из кнопок была нажата.
Code
private var selectedToolbar : int = 0; private var toolbarStrings = ["One", "Two"];
function OnGUI () { // Determine which button is active, whether it was clicked this frame or not selectedToolbar = GUI.Toolbar (Rect (50, 10, Screen.width - 100, 30), selectedToolbar, toolbarStrings);
// If the user clicked a new Toolbar button this frame, we'll process their input if (GUI.changed) { print ("The toolbar was clicked");
if (selectedToolbar == 0) { print ("First button was clicked"); } else { print ("Second button was clicked"); } } }
На сегодня всё! Список будет постоянно пополнятся! Завтра доделаю,устал уже
function RGBSlider (screenRect : Rect, rgb : Color) : Color { rgb.r = GUI.HorizontalSlider (screenRect, rgb.r, 0.0, 1.0); screenRect.y += 20; // <- Move the next control down a bit to avoid overlapping rgb.g = GUI.HorizontalSlider (screenRect, rgb.g, 0.0, 1.0); screenRect.y += 20; // <- Move the next control down a bit to avoid overlapping rgb.b = GUI.HorizontalSlider (screenRect, rgb.b, 0.0, 1.0); return rgb; }
function RGBLabelSlider (screenRect : Rect, rgb : Color) : Color { rgb.r = CompoundControls.LabelSlider (screenRect, rgb.r, 1.0, "Red"); screenRect.y += 20; // <- Move the next control down a bit to avoid overlapping rgb.g = CompoundControls.LabelSlider (screenRect, rgb.g, 1.0, "Green"); screenRect.y += 20; // <- Move the next control down a bit to avoid overlapping rgb.b = CompoundControls.LabelSlider (screenRect, rgb.b, 1.0, "Blue"); return rgb; }
23.Для того чтобы показать окно на экране, меню, который отображает его. Это делается путем создания функции, которая активируется MenuItem собственности.
По умолчанию в Unity3D заключается в переработке стекла (так что выбор пункта меню снова будет показывать существующие окна Это делается с помощью функции EditorWindow.GetWindow Вот так.:
Code
class MyWindow extends EditorWindow { @MenuItem ("Window/My Window") static function ShowWindow () { EditorWindow.GetWindow (MyWindow); }
function OnGUI () { // The actual window code goes here } }
Внимание! Что бы использовать данный скрипт,нужно его и всё с ним связанное в папку Editor в Project View!
24.Ключевым фактором для увеличения скорости создания игры заключается в создании пользовательских инспекторов для часто используемых компонентов. Для примера, мы будем использовать очень простой скрипт, который всегда держит объект глядя на точку.
Code
@script ExecuteInEditMode()
var lookAtPoint = Vector3.zero;
function Update () { transform.LookAt (lookAtPoint); }
25.Что бы сделать его рабочим,даже не в тестировании игры,добавляем к нему атрибут ExecuteInEditMode
Code
var lookAtPoint = Vector3.zero;
function Update () { transform.LookAt (lookAtPoint); }
26.Теперь мы можем сделать инспектор намного лучше!Создадим JavaScript с именем LookAtPointEditor,и поместить его в папку Editor (Assets/Editor)
Code
@CustomEditor (LookAtPoint) class LookAtPointEditor extends Editor { function OnInspectorGUI () { target.lookAtPoint = EditorGUILayout.Vector3Field ("Look At Point", target.lookAtPoint); if (GUI.changed) EditorUtility.SetDirty (target); } }
27.Включение/Выключение ИС (Источника света) на одной кнопке(Автор Zer0n)
Code
var svet : Light;
function Update() { if (Input.GetKeyDown("caps lock")) svet.enabled = !svet.enabled; }
Пока всё! Список постоянно пополняется! ВНИМАНИЕ!!! Если нужно что нибудь перевести с НОРМАЛЬНЫМ переводом(не машинным),обращайтесь,я помогу,мне не лень!!!
Сообщение отредактировал Max-Hunter - Вт, 14 Июн 2011, 11:00