Aula gui

11
Projeto de jogos RAD Classe GUI: Menus e Interfaces Augusto Bülow

description

Aula para desenho de interfaces no Unity3D

Transcript of Aula gui

Page 1: Aula gui

Projeto de jogos RADClasse GUI: Menus e Interfaces

Augusto Bülow

Page 2: Aula gui

Unity 3D• Classe GUI todos recursos para interfaces de

tela (de forma facilitada):• Box (caixas de menu)• Menus (botões)• Labels (textos simples)• TextField (entrada de textos)• DrawTexture (apresentação de imagens)• ...

Page 3: Aula gui

Unity 3D• Renderização GUI – evento pos render do

mundo virtual 3D• Elementos GUI colocados sobre (a frente) dos

elementos de jogo• TODOS objetos podem referenciar a classe

GUI e compor / exibir elementos de tela

function OnGUI () {

....

}

Page 4: Aula gui

Unity 3D• BOX – Caixas de menus, caixas para

diálogos do jogo• Parâmetros

• Posição e dimensão: Rect(x,y,sizex,sizey)• Texto, título da Box

function OnGUI () {GUI.Box(Rect (0, 0,

400,200),“Título"); }

Page 5: Aula gui

Unity 3D• LABEL – texto simples para exibição na tela• Parâmetros

• Posição e dimensão: Rect(x,y,sizex,sizey)

• Tamanho é respeitado pelo texto, sendo quebrado (automaticamente) dentro da área

• Texto

var numero = 1.3;var texto1 = “Variável String”function OnGUI () {

GUI.Label(Rect (0, 0, 400,200),“Qualquer texto");

//permite uso de variáveis string + numéricasGUI.Label(Rect (0, 20, 400,200), texto1 +

numero); }

Page 6: Aula gui

Unity 3D• BUTTON – Botões • Parâmetros

• Posição e dimensão: Rect(x,y,sizex,sizey)

• Texto

• Código botão usado para exibição e avaliação do click / uso ao mesmo tempo

function OnGUI () {

if (GUI.Button( Rect(10, 10, 100,20),“Texto Botão“)) {

....

// se botão pressionado = código

}

}

Page 7: Aula gui

Unity 3D– TEXTFIELD : caixa para entrada de textos– Parâmetros

– Posição e dimensão: Rect(x,y,sizex,sizey)

– String (variável) para entrada / input

– Número máximo de caracteres

var nome = “”;function OnGUI () {

GUI.Label(Rect (0, 0, 400,200),“Digite seu nome:");

nome = GUI.TextField (Rect (0, 20, 100, 30), nome, 25);

// TextField – retorna valor para variável String}

Page 8: Aula gui

Unity 3D– DRAWTEXTURE: exibir imagens (BMPs) na tela– Parâmetros

– Posição e dimensão: Rect(x,y,sizex,sizey)

– Imagem (Texture2D) para exibição

var imagem_menu : Texture2D; //declara BMP – seta via Inspector

function OnGUI () {

sizex = imagem_menu.width; //possível pegar dimensões da imagem

sizey = imagem_menu.height;

GUI.DrawTexture(Rect(posx,posy,sizex,sizey), imagem_menu);

}

Page 9: Aula gui

Unity 3D– Elementos apresentados permitem construção dos

menus que precisamos– Classe GUI mais completa, checar documentação

(manual) para controles extras:

– Toggle, TextArea, VerticalSlider ...

– GUI permite customização por meio de GUISkins– GUISkin: definição geral de estilo do menu, incluindo

fontes, imagens, cores, etc, definíveis por elemento.

Page 10: Aula gui

Unity 3D– Criamos uma nova GUISkin

para criarmos nosso “design” de menus

– Assets -> Create -> GUISkin

Page 11: Aula gui

Unity 3D– Por código, declaramos as GUISkins e determinamos

qual Skin deve ser usada antes de criar os elementos GUI

var Skin1 : GUISkin;

var Skin2 : GUISkin; //defino via Inspector as Skins

function OnGUI () {

GUI.skin = Skin1;

GUI.Label(Rect (0, 0, 400,200),“Texto com Skin1");

GUI.skin = Skin2;

GUI.Label(Rect (0, 20, 400,200),“Texto com Skin2");

}