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ão | Modo | Tecla(s) Associada |
|---|---|---|
| Horizontal | Analógico | Esquerda,Direita,a,d |
| Vertical | Analógico | Cima,Baixo,w,s |
| Fire1 | Digital | Control Esquerdo |
| Fire2 | Digital | Alt Esquerdo |
| Fire3 | Digital | Command Esquerdo |
| Jump | Digital | Espaç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