No script anterior nós entendemos como funcionam as variáveis na unity,mas e a parte que tem function Update?
Bem,essa parte é uma função,funções são partes do código que realizam alguma tarefa.Existem vários tipos de função na unity veja as principais e o que elas fazem:
Update-O código que está dentro dela é executado a cada frame
Start-O código que está dentro dela é executado quando a cena começa
OnCollisionEnter-O código que está dentro dela é executado quando o objeto que possui o script colide com alguma coisa.
Você pode criar suas próprias funções,por exemplo abra o script da aula anterior e digite isso:
var b=10;
var c=2;
function Update () {
Debug.Log(soma);
}
function soma()
{
return b+c;
}
Agora a barra cinza está indicando 12,que é 10+2(b+c).Como você pode ver o comando return serve para retornar algum valor passado pela função.
É isso aí acho que já é suficiente para começar,agora você pode ver os meu videos no youtube e começar a entender as coisa lá.
Até a próxima!
Mostrando postagens com marcador tutorial iniciante unity 3d. Mostrar todas as postagens
Mostrando postagens com marcador tutorial iniciante unity 3d. Mostrar todas as postagens
quarta-feira, 7 de setembro de 2011
Movimento avançado de personagens com Character Controller
Se você assistiu os videos anteriores,já percebeu que o script de movimento do personagem usado neles não funciona muito bem.Mas por que?
A resposta é simples,o script apenas muda a posição do objeto enquanto quem cuida das "interações físicas" é o rigidbody e as simulações feitas por esse componente não são muito boas para personagens,então nós devemos usar outro tipo de componente voltado para personagens na unity esse componente se chama Character Controller.
Abra a unity coloque um cubo,um plano e uma luz na cena posicione pra ficar mais ou menos assim:
Ok,agora vamos ao script,crie um novo javascript chame-o de move ou andar ou algo do tipo(é bom colocar nomes que expliquem bem o que o script faz porque quando seu projeto ficar grande você pode se perder nos códigos).Dê dois cliques no script e dentro do editor de códigos cole isso aqui:
Referencias
Character Controller
Time.deltaTime
Bom jogo e até a próxima!
Aqui você pode ver a cena que eu fiz com esse script
A resposta é simples,o script apenas muda a posição do objeto enquanto quem cuida das "interações físicas" é o rigidbody e as simulações feitas por esse componente não são muito boas para personagens,então nós devemos usar outro tipo de componente voltado para personagens na unity esse componente se chama Character Controller.
Abra a unity coloque um cubo,um plano e uma luz na cena posicione pra ficar mais ou menos assim:
Ok,agora vamos ao script,crie um novo javascript chame-o de move ou andar ou algo do tipo(é bom colocar nomes que expliquem bem o que o script faz porque quando seu projeto ficar grande você pode se perder nos códigos).Dê dois cliques no script e dentro do editor de códigos cole isso aqui:
var speed : float = 6.0;
var jumpSpeed : float = 8.0;
var gravity : float = 20.0;
var rotspeed:float=3.0;
private var moveDirection : Vector3 = Vector3.zero;
function Update() {
var hor=Input.GetAxis("Horizontal");
var vert=Input.GetAxis("Vertical");
var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
moveDirection = Vector3(0, 0,vert);
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
transform.Rotate(0,hor*rotspeed,0);
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
}
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
@script RequireComponent(CharacterController)
Arraste o script para o cubo,bote o jogo pra tocar e brinque um pouco,como você pode ver esse script esta pronto para ser usado em qualquer tipo de jogo de plataforma 3d(Mario 64) a TPS(Gears of War).Agora vamos a explicação desse código:var jumpSpeed : float = 8.0; var gravity : float = 20.0; var rotspeed:float=3.0;Essas variáveis indicam a velocidade do pulo(jumpSpeed) a gravidade(gravity) e a velocidade de rotação(rotspeed).
private var moveDirection : Vector3 = Vector3.zero;Essa variável indica a direção do movimento do player.
var hor=Input.GetAxis("Horizontal");
var vert=Input.GetAxis("Vertical");
var controller : CharacterController = GetComponent(CharacterController);
Aqui temos uma variável para representar o eixo horizontal do teclado , outra para representar o eixo vertical e mais uma para representar o componente Character Controller.if (controller.isGrounded) {
moveDirection = Vector3(0, 0,vert);
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
transform.Rotate(0,hor*rotspeed,0);
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
}
}
Esse if (controller.isGrounded) quer dizer se o personagem estiver no chão,colocamos a direção dele para ser guiada no eixo z pelo vertical do teclado.O moveDirection *= speed multiplica o moveDirection para ter velocidade. transform.Rotate(0,hor*rotspeed,0) faz a rotação de player multiplicando pela velocidade de rotação.O if (Input.GetButton ("Jump")) serve para mudar o eixo y para a velocidade de pulo(jumpSpeed).moveDirection.y -= gravity * Time.deltaTime Faz a gravidade cuidar da altura do player(caso ele não esteja no chão).@script RequireComponent(CharacterController) Coloca um Character Controller no objeto.Referencias
Character Controller
Time.deltaTime
Bom jogo e até a próxima!
Aqui você pode ver a cena que eu fiz com esse script
Marcadores:
como mover personagem na unity 3d,
tutori,
tutorial iniciante unity 3d,
tutorial unity 3d character controller,
tutorial unity 3d em português,
unity 3d,
unity 3d character controller
sábado, 3 de setembro de 2011
Série de tutoriais Unity 3d
Eu fiz essa série de tutoriais de unity 3d a algum tempo,mas são bem legais pra quem está começando:
É isso espero que essas aulas ajudem,vou fazer outros tutoriais sobre assuntos mais avançados,mesclando videos com texto(os que envolverem mais programação eu vou fazer em texto mesmo).
Até a próxima:D
É isso espero que essas aulas ajudem,vou fazer outros tutoriais sobre assuntos mais avançados,mesclando videos com texto(os que envolverem mais programação eu vou fazer em texto mesmo).
Até a próxima:D
Assinar:
Postagens (Atom)