Pular para o conteúdo principal

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áriasimport UnityEngine.UI;
//
Comentar uma linha//Essa linha é um comentario
private, public
Visibilidade da variável, por padrão as variáveis são publicprivate var segredo:String;
public var nome:String;
bool
Variável: true ou falsevar pego:bool;
int
Variável de número inteirovar idade:int;
float
Variável de número decimalvar numero:float;
String
Variável de textovar nome:String;
nullVariável nula
+ - * / % ++ --
Operadores matemáticos2 + 5
if(condição){
código
}
Estrutura de seleção 'if'if(blog == "FrankDantas.js"){
println("Blog interessante");
}
== != < > <= >=
Operadores relacionais2 == 2; //true
3 != 5 //true
&& ||
Operadores lógicos2==2 && nome == "Aluno"
switch(var){
case var1:code break;
default: code break;
}
Similar ao 'if'switch(nome){
case "Aluno 1":
println("Faltou");
break;
case "Aluno 2":
println("Presença");
break;
}
Expressão ? resultado1 : resultado2
Operador ternário. Similar ao 'if'decisao = idade >= 18 ? "Maior idade" : "Menor";
while(condição){
código
}
Executa o code enquanto a condição for verdadeira/true
var values : float[];Criar um novo array/vetor de float
arr.Push ("Hello");Adicionar item no final do array
arr[1] = "World";Atribuir valor na posição 1 do array
arr.lengthObter tamanho do array
for (var value : String in arr) {
print(value);
}
Percorrer itens do array de String
function Nome(){
código
}
Função simples
function Nome(){
código
return result;
}
Função com retorno
function Nome(param1, param2){
código
}
Função com parâmetro

MonoBehavior / Unity
Vector3
Variável do tipo Vector 3var posicao:Vector3 = new Vector3(0,0,0);
Awake()Chamada antes da função Start(), Update() e FixedUpdate().
Update
Loop para sempre, chamada após o start. Use com Time.deltaTime para melhorar o desempenho do jogo.function Update(){
code
}
FixedUpdate()Chamada a cada frame, depende do framerate do computador
OnEnable()Chamada quando o gameobject volta a ser ativo
Start()
Chamada depois do Awake() e antes do Update()function Start(){
code
}
Instantiate(obj, position, rotation)Cria uma cópia do 'obj' na posição e rotação escolhida
GetComponent.<Type>()
Retorna o componente do Type escolhido do gameObject selecionado, se tivervar rb:Rigidbody = GetComponent.<Rigidbody>();
Destroy(obj)Remove um gameobject ou component escolhido
gameObject.transform.positionRetorna em um Vector3 a posição do gameObject
gameObject.transform.rotationRetorna a rotação do gameObject escolhido num Vector3

Outros Componentes
OnCollisionEnter(other:Collision){
code
}
Chamada quando um rigidbody começa a colidir com outro.
OnCollisionExit(other:Collision){
code
}
Chamada quando um rigidbody deixa de colidir com outro.
OnTriggerEnter(other:Collider){
code
}
Chamada quando um o Collider colide com outro. O isTrigger deve estar ativo.function OnTriggerEnter (other:Collider){
if(other.gameObject.tag == "Enemies"){
println("Trombou com inimigo");
}
}
OnTriggerExit(other:Collider){
code
}
Chamada quando um o Collider deixa de colidir com outro. O isTrigger deve estar ativo.
Physics.Raycast()Verifica se há colisão na direção escolhida
Input.GetKeyDown(KeyCode.Space)Retorna um bool se a tecla escolhida estiver apertada
MathfObject das funções matemáticas
var audio: AudioSource = GetComponent.<AudioSource>();
audio.Play();
Toca o audio escolhi no componente AudioSource do gameObject
Random.Range(min, max)Retorna um número dentre o min e o max escolhido, inclusos.
Application.LoadLevel(index)Carrega a cena com o index escolhido. O index é escolhido da tela de 'Build Settings' no menu 'File'
Application.LoadLevel(Application.loadedLevel)Recarrega a cena

Comentários

Postagens mais visitadas deste blog

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çã...

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

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 () {...