17719510 Geologia Do Petroleo IGcUSP Aula8 Perfilagem Geofisica
Aula8 instancias
-
Upload
marcos-batista -
Category
Education
-
view
418 -
download
1
description
Transcript of Aula8 instancias
Projetos RAD : Unity 3DCriação de Instâncias e Objetos
Augusto Bülow
Unity
• Criar objetos por script:– Primitivas: objetos básicos e gerais– Instâncias: objetos complexos, pré-modulados
• Utilização geral:– Criar inimigos e itens em tempo real– Criar balas e disparos– Criar objetos auxiliares (diversos)– Criar cenários em tempo real
– Limite = imaginação
Unity
• Criando um novo objeto : primitivas• GameObject.CreatePrimitive
– Definir tipo de primitiva
//criando objeto simples
if (Input.GetKey("1")) {
GameObject.CreatePrimitive(PrimitiveType.Cube);
}
Unity
• Tipos de primitivas válidas:• PrimitiveType.
– Sphere– Capsule– Cylinder– Cube– Plane
• Objetos criados são posicionados na origem do mundo inicialmente. Coordenadas (0,0,0)
Unity
• Possível manter uma referência ao objeto na criação• Com sua referência (ponteiro):
– Atualizar suas propriedades– Adicionar componentes em geral
if (Input.GetKeyDown("2")) {
var novo = GameObject.CreatePrimitive(PrimitiveType.Cube);
//colocar novo objeto em posição específica
novo.transform.position = Vector3( 2, 2, 2);
}
Unity
• Adicionando um componente a um objeto:• gameObject.AddComponent(type)
– Rigidbody– “SphereCollider”– “ScriptName” ou “AssetName”
if (Input.GetKeyDown("2")) {
var novo = GameObject.CreatePrimitive(PrimitiveType.Cube);
novo.transform.position = Vector3( 2, 2, 2);
novo.AddComponent(Rigidbody);
}
Unity
• Criando um objeto vazio (empty)– Possível atribuir um nome– Possível adicionar todos componentes manualmente
• new GameObject(“nome”)
if (Input.GetKeyDown("4")) {
novo3 = new GameObject ("Vazio");novo3.AddComponent ("Rigidbody");novo3.AddComponent ("BoxCollider");
novo3.transform.position = Vector3( 1, 1, 1);
}
Unity
• Criando uma Instância – Baseado em objetos prefab (precisa de um prefab)– Prefab: objetos complexos, com materiais, códigos,
componentes já atachados = re-utilização
aux = Instantiate( original, posição, rotação);
Original = algum prefab pre-determinado
Posição = Vector3(X, Y, Z)
Rotação = Quaternion
Unity
• Exemplo de Instantiate
//Declarar quem será instanciado – selecionável pelo inspector
var clone : Transform;
....
if (Input.GetKeyDown("5")) {
novo4 = Instantiate(clone, transform.position,transform.rotation)
}
Unity
• Rotação = Quaternion• Tipo específico da Unity• Componentes X,Y,Z,W• Ângulos são interpolados pela Unity, não modificar elementos
manualmente• Operações / funções especificas para transformação de ângulo• Exemplos básicos:
– Quaternion.identity; • Ângulo 0,0,0 perfeitamente alinhado com eixos do mundo
– Quaternion.Euler(X, Y, Z)• Conversão direta de graus (X,Y,Z) para Quaternion
Unity
• Outros exemplos de criação múltipla:
var clone2 : Transform;...
if (Input.GetKeyDown("6")) {
// 10 instancias do clone2, 2 unidades de distancia
for (var i=0; i<10; i++) {
Instantiate (clone2, Vector3(i * 2.0, 0,0),Quaternion.identity);
}
}