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!
Sex,drugs and python
Programação orientada a gambiarras levada a sério
quarta-feira, 7 de setembro de 2011
Fundamentos da programação javascript na unity parte 1
Pecebi que os tutoriais anteriores exigiam um certo conhecimento de programação,então resolvi criar essa série de tutoriais pra ensinar um pouco dos fundamentos da programação na unity 3d com javascript.
Agora vamos começar com o tutorial:
var a:int=5;
function Update () {
Debug.Log(a);
}
Na linha var a:int=5; nós declaramos o valor 5 a variável "a" que é do tipo inteiro(por isso o :int)
Depois de colocar o script na camera toque o jogo pra ver no que dá:
O comando Debug.Log faz com que o valor de a apareça na telinha cinza.Se você quiser pode mudar o valor de a no editor,clicando na câmera e mudado o valor da a como a imagem mostra:
Existem vários tipos de váriaveis como float(valores não inteiros),string(textos),GameObject(game objects).
Essa foi a primeira parte,na segunda parte aprenderemos sobre funções,até a próxima!
- Javascript não é java e não tem quase nada parecido com java
- Qualquer linguagem da unity tem o mesmo poder
Agora vamos começar com o tutorial:
- Variáveis
var a:int=5;
function Update () {
Debug.Log(a);
}
Na linha var a:int=5; nós declaramos o valor 5 a variável "a" que é do tipo inteiro(por isso o :int)
Depois de colocar o script na camera toque o jogo pra ver no que dá:
Essa foi a primeira parte,na segunda parte aprenderemos sobre funções,até a próxima!
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
Novo Canal no Youtube
Fiz um novo canal no youtube porque acabei tendo uns problemas com minha conta antiga do google.
Quem quiser se inscrever clique aqui
Quem quiser se inscrever clique aqui
Marcadores:
novo canal do youtube,
unity 3d,
youtube
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
Hello World!
Bem é isso aí!Primeiro post...Espero poder colocar aqui neste blog as minhas experiências de final de semana e quem sabe até ensinar alguma coisa a alguém...
É isso aí
É isso aí
main( ) { printf("hello, world"); }
Assinar:
Postagens (Atom)