Pular para o conteúdo principal

Postagens

GUI

Nesse artigo será abordado como trabalhar com alguns elementos da GUI. Os elementos abordados serão, TextField, Button, Slider e Box. Quando for trabalhar com elementos da UI (User Interface) deve-se primeiro fazer o import necessário no início do arquivo de script  import UnityEngine.UI;  A função OnGUI da própria Unity é a responsável por exibir e interagir com os elementos criados via código.  function OnGUI(){  } Botão Para criar botões, o código será o seguinte if ( GUI.Button( Rect( 10, 70, 100, 30 ), "Input"  ) ){         Debug.Log(stringToEdit);     } Essa é uma das maneiras de criar um botão, pois o método GUI.Button tem várias assinaturas. Da maneira utilizada o primeiro parâmetro está relacionado à posição do botão na interface, que s...
Postagens recentes

Comera Follow com Rotate

Ainda pensando no movimento da câmera, outro recurso muito utilizado é a rotação dela em torno do player. Observe o código a seguir. var player:Transform; var turnSpeed:float = 4.0f; var smooth:boolean = false; private var offset:Vector3; private var velocidade:Vector3; function Start () { offset = transform.position - player.position; Cursor.lockState = CursorLockMode.Locked; } function LateUpdate(){ offset = Quaternion.AngleAxis (Input.GetAxis("Mouse X") * turnSpeed, Vector3.up) * offset; if(smooth){ var targetPosition : Vector3 = player.position + offset; transform.position = Vector3.SmoothDamp(transform.position, targetPosition, velocidade, 0.3f); }else{ transform.position = player.position + offset; } transform.LookAt(player.position); } Nesse código tem-se agora, o player ou target do tipo Transform, atente-se a isso, dessa forma temos acesso apenas à propriedade Transform do player, existe também a variável turnSpeed que será a velocidade de rotaçã...

Camera Follow

Quando se vai criar um jogo na Unity, um recurso que muitas pessoas gostam de usar é fazer com que a câmera siga o player principal. Para fazer com que um objeto siga o outro, é preciso mexer apenas na posição do objeto "seguidor". Como? A seguir um código que fará com que isso aconteça de forma simples. Olhe: var target:GameObject; var smoothTime = 0.3; var smooth:boolean; private var velocity = Vector3.zero; private var offset:Vector3; function Start () { offset = target.transform.position - transform.position; } function Update () { if(smooth){ var targetPosition : Vector3 = target.transform.position - offset; transform.position = Vector3.SmoothDamp(transform.position, targetPosition, velocity, smoothTime); }else{ transform.position = target.transform.position - offset; } } O que está acontecendo? No código acima temos três variáveis públicas, e são elas: target, smoothTime e smooth. A variável target será quem a câmera deverá seguir, smoothTime serv...

Images Labels em Game Objects

Um recurso que vemos em muitos jogos por aí, são labels ou imagens sob alguns objetos. Olhe o código a seguir: import UnityEngine.UI; var icone:Image; function Start (){ icone.enabled = false; } function Update () { var screenPos:Vector3 = Camera.main.WorldToScreenPoint(transform.position); icone.transform.position = screenPos; } function OnMouseOver(){ icone.enabled = true; } function OnMouseExit(){ icone.enabled = false; } No código acima podemos ver que primeiro fazemos o import da biblioteca UI da Unity, para poder trabalhar com a interface gráfica. Em seguida criou-se a variável icone do tipo Image, essa imagem será a imagem qeu ficara sob nosso gameObjet, e ela é um gameObjet Image, filho do Canvas, na nossa interface da unity. Por padrão iniciamos nossa imagem desabilitada. Na função update usou-se o método WorldToScreenPoint, que retorna a posição do gameObject em relação a tela e em seguida colocamos nossa imagem(icone) na posição da gameObject. Os métodos OnMouseO...

Input MouseButton

Bem parecido o post anterior sobre as teclas, os botões do mouse funcionam bem parecidos. Para o mouse tem-se os métodos Input.GetMouseButton() , Input.GetMouseButtonDown() e Input.GetMouseButtonUp() . Os três funcionam de forma identica as teclas. Os três retornam true ou false dependendo do seu estado, GetMouseButton, retorna true enquanto o mouse estiver pressionado, GetMouseButtonDown retornará true somente no clique do mouse, e o GetMouseButtonUp será true se o clique/mouse for solto. A seguir um código bem parecido com o anterior, só para identificar os botões do mouse. private var cor:Material; function Start () { cor = GetComponent. ().material; } function Update () { if(Input.GetMouseButton(0)){ cor.color = Color.red; }else{ cor.color = Color.white; } } O número 0 passado como parâmetro na função GetMouseButton indica o botão esquerdo do mouse, para saber se o botão direito do mouse está pressionado, o número seria 1, e para saber se o scroll está pressionado u...

Input GetKey

Quando se trata de entrada do usuário, na unity temos vários métodos que permitem isso, nesse post será explicado sobre as teclas. Quando se quer saber se alguma tecla foi apertada, pode-se usar Input.GetKey, Input.GetKeyDown e Input.GetKeyUp. Esse três métodos retornam valores booleanos (true ou false), caso a tecla passada como parâmetro atenda a condição de cada método, por exemplo Input.GetKey(tecla) : retorna true se a tecla estiver pressionada. Input.GetKeyDown(tecla) : retorna true se a tecla foi pressionada e já altera seu valor, enquanto a tecla nao for solta e pressionada novamente, não volta a ser true. Input.GetKeyUp(tecla) : retorna true quando a tecla é solta, o oposto do Input.GetKeyDown. O exemplo abaixo vai mudar a cor do nosso gameObject dependendo do estado da tecla. private var cor:Material; function Start () { cor = GetComponent. ().material; } function Update () {...

UnityScript

Como já dito, em outro post, a Unity permite trabalhar com duas linguagens de programação, são elas C# e Javascript. Nesse post será apresentado uma introdução à algumas funções e palavras-chave quando trabalha-se com a Unity usando Javascript. Veja a seguir o exemplo de algumas dessas palavras e funções. Java Script import Importar bibliotecas necessárias import UnityEngine.UI; // Comentar uma linha //Essa linha é um comentario private, public Visibilidade da variável, por padrão as variáveis são public private var segredo:String; public var nome:String; bool Variável: true ou false var pego:bool; int Variável de número inteiro var idade:int; float Variável de número decimal var numero:float; String Variável de texto var nome:String; null Variável nula + - * / % ++ -- Operadores matemáticos 2 + 5 if(condição){ código } Estrutura de seleção 'if' if(blog == "FrankDantas.js"){ println("Blog interessante"); } == != < > <= >= Operadores relacionais...