quinta-feira, 16 de fevereiro de 2012

Operações Comuns

Movendo um GameObject sobre o plano:


// Esta é uma variável exposta, e por isso poderá ser modificada no editor da Unity3D
var velocidade = 5.0;

function Update () {
    var dx = Input.GetAxis("Horizontal") * Time.deltaTime * velocidade;
    var dz = Input.GetAxis("Vertical") * Time.deltaTime * velocidade;
    transform.Translate(dx, 0, dz);
}


Fazendo um objeto "olhar" para outro (comumente utilizado em câmeras ou spot lights):


// Objeto para o qual olharemos
var alvo : Transform;

function Update () {
    transform.LookAt(target);
}

Respondendo a estímulos de entrada (botões pressionados):


if (Input.GetButtonDown("Fire1")) {
    //Faz alguma coisa
}

Os botões são definidos no menu Edit -> Project Settings -> Input. A Unity3D já define os seguintes botões, ou EIXOS (Axis):

BotãoModoTecla(s) Associada
HorizontalAnalógicoEsquerda,Direita,a,d
VerticalAnalógicoCima,Baixo,w,s
Fire1DigitalControl Esquerdo
Fire2DigitalAlt Esquerdo
Fire3DigitalCommand Esquerdo
JumpDigitalEspaço

Acessando outro Script:


GetComponent(NomeDoScript)

Por exemplo:

var novoAlvo : Transform;

function Update () {
    if (Input.GetButtonDown("Jump")) {
        GetComponent(Seguir).target = novoAlvo;
    }
}

Acessando objetos pelo nome:


GameObject.Find("Nome do Objeto")

Acessando objetos pela tag:


GameObject.FindWithTag("Tag do Objeto")

Instanciando novos objetos:


Sintaxe geral:

Instantiate(preFab, posição, rotação);

Exemplo:

var balaPrefab : Rigidbody;
var velocidade  = 20;

function Update() {
    if (Input.GetButtonDown("Fire1")) {
        // Criando uma nova bala
        var bala = Instantiate(balaPrefab, transform.position, transform.rotation);
        // Definindo a velocidade da bala
        bala.velocity = transform.TransformDirection(Vector3(0, 0, velocidade));
        // Fazendo com que a bala não colida com o personagem
        Physics.IgnoreCollision(bala.collider, transform.root.collider);
    }
}

Depurando


Debug.Log("Atirou !");

Sem comentários:

Enviar um comentário