Tutorial Unity

43
Tutorial Unity 3D Reginaldo Costa

Transcript of Tutorial Unity

Page 1: Tutorial Unity

Tutorial Unity 3D

Reginaldo Costa

Page 2: Tutorial Unity

Afinal, o que é Unity3d?

Page 3: Tutorial Unity

E o que não é?

Page 4: Tutorial Unity

Versões gratuitas

x Versões pagas

Page 5: Tutorial Unity

Criando/abrindo

um projeto

Page 6: Tutorial Unity

O que incluir num

novo projeto?

Page 7: Tutorial Unity
Page 8: Tutorial Unity

Criando uma nova

cena

Page 9: Tutorial Unity

interface do UNITY

Page 10: Tutorial Unity

Importância de organizar o

projeto!

Page 11: Tutorial Unity

Formatos suportados

–3d max

–Blender

–FBX

–Imagens JPEG, GIF e PNG

–Arquivos do Photoshop

Page 12: Tutorial Unity

Geometria básica

Page 13: Tutorial Unity

Posicionando, rotacionando

e dimensionando

Page 14: Tutorial Unity

Importando objetos

Page 15: Tutorial Unity

3 formas de importação

– Import New Asset

–Arrastando do Explorer

–Colocando manualmente

Page 16: Tutorial Unity

Unity é semisciente!

Page 17: Tutorial Unity

Criando um terreno

Page 18: Tutorial Unity

Criando relevo

Page 19: Tutorial Unity

Câmera estática

Page 20: Tutorial Unity

Controlador de 1ª e 3ª pessoas

Page 21: Tutorial Unity

Corpos rígidos e gravidade

Page 22: Tutorial Unity

Exportando seu projeto

–Executável

–Web

Page 23: Tutorial Unity

Adicionando interação

Page 24: Tutorial Unity

Rotacionando

var speed = 20;

function Update () {

transform.Rotate(0, speed*Time.deltaTime, 0);

}

Page 25: Tutorial Unity

Rotacionando pelo nome

var speed = 20;

function Update () {

transform.Rotate(0, speed*Time.deltaTime, 0);

GameObject.Find('cubo2').transform.Rotate(0,

speed*Time.deltaTime, 0);

}

Page 26: Tutorial Unity

Rotação seguindo o mouse

var rotationSpeed = 10.0;

var lerpSpeed = 1.0;

private var speed = new Vector3();

private var avgSpeed = new Vector3();

static var dragging = false;

private var targetSpeedX = new Vector3();

function OnMouseDown(){

print('mouse donw');

dragging = true;

}

Page 27: Tutorial Unity

function Update () {

if (Input.GetMouseButton(0) /*&& dragging*/) {

speed = new Vector3(-Input.GetAxis ("Mouse X"), Input.GetAxis("Mouse Y"), 0);

avgSpeed = Vector3.Lerp(avgSpeed,speed,Time.deltaTime * 5);

} else {

if (dragging) {

speed = avgSpeed;

dragging = false;

}

Page 28: Tutorial Unity

var i = Time.deltaTime * lerpSpeed;

speed = Vector3.Lerp( speed,

Vector3.zero, i);

}

transform.Rotate( Camera.main.transform.up *

speed.x * rotationSpeed, Space.World );

transform.Rotate( Camera.main.transform.right *

speed.y * rotationSpeed, Space.World );

}

Page 29: Tutorial Unity

Verificando a ordem em que as cenas serão executadas

Page 30: Tutorial Unity

Criando um menu de cenas

Page 31: Tutorial Unity

function OnGUI () {

var posHorizontal = (Screen.width)/2;

var posVertical = 10;

if (GUI.Button( Rect(posHorizontal-

320,posVertical,150,40),"Cena 1")) {

Application.LoadLevel(1);

}

if (GUI.Button(Rect( posHorizontal-

160,posVertical,150,40),"Cena 2")) {

Application.LoadLevel(2);

}

Page 32: Tutorial Unity

if (GUI.Button(Rect(

posHorizontal,posVertical ,150,40),"Cena

3")) {

Application.LoadLevel(3);

}

if (GUI.Button(Rect( posHorizontal+170,

posVertical, 150,40),"Sair")) {

Application.Quit();

}

}

Page 33: Tutorial Unity

Criando uma tela de login

Page 34: Tutorial Unity

var campoNomeUsuario:String;

var campoSenha:String;

var texto:String = "";

function OnGUI() {

GUI.skin.button.hover.textColor = Color.cyan;

GUI.skin.button.active.textColor = Color.yellow;

GUI.skin.button.normal.textColor = Color.white;

var posHorizontal = (Screen.width) /2;

var posVertical = (Screen.height - 230) /2; GUI.Box(Rect(posHorizontal,posVertical,300,160),"VIRTUAL SUBSTATION - LOGIN");

Page 35: Tutorial Unity

GUI.Label( Rect (posHorizontal + 60,

posVertical +50, 80, 20), "Usuário:" );

GUI.Label( Rect (posHorizontal + 60,

posVertical +80, 80, 20), "Senha:" );

GUI.SetNextControlName("nomeUsuario");

campoNomeUsuario = GUI.TextField( Rect

(posHorizontal +140, posVertical +50, 110,

20), campoNomeUsuario );

GUI.SetNextControlName("senha");

campoSenha = GUI.PasswordField ( Rect

(posHorizontal +140, posVertical +80, 110,

20), campoSenha , "*"[0], 25);

if

(GUI.GetNameOfFocusedControl().Equals("")) {

GUI.FocusControl("nomeUsuario");

}

Page 36: Tutorial Unity

if( GUI.Button ( Rect (posHorizontal + 45,

posVertical +120, 100, 25),"Fazer Login" ) ){

if

((campoNomeUsuario.Equals('reginaldo')) &&

campoSenha.Equals('teste')) {

texto = 'Confere';

print('confere');

}

else{

texto = 'não confere';

print('não confere');

}

}

Page 37: Tutorial Unity

if( GUI.Button ( Rect

(posHorizontal + 155, posVertical

+120, 100, 25),"Sair" ) ){ //just a

button

Application.Quit();

}

if (!texto.Equals("")){

GUI.Label( Rect (posHorizontal +

60, posVertical +180, 80, 20),

texto);

}

}

Page 38: Tutorial Unity

Animação

Page 39: Tutorial Unity

Executando uma animação por script

var posHorizontal = (Screen.width - 50)/2;

function OnGUI () {

if(GUI.Button(Rect

(posHorizontal+60,Screen.height-60,50,50),"Play"))

{

GameObject.Find("Cube").animation.Play('animac

ao');

}

}

Page 40: Tutorial Unity

Onde conseguir mais?

• http://unity3d.qatohost.com/questions/index.html

• http://forum.unity3dbrasil.com/viewforum.php?f=3

• http://www.gamedev.com.br/forum/viewforum.php?f=60

Page 41: Tutorial Unity

Livros Unity 3D

Page 42: Tutorial Unity

Livros Unity 3D (2)