Dúvida: Player Dash

0 views
Skip to first unread message

Luiz Felipe Pericolo

unread,
Jun 12, 2012, 3:37:44 PM6/12/12
to gamedev-u...@googlegroups.com
Bom dia, senhores.

To com dificuldades aqui em implementar um simples Dash em um game object com character controller em 3a pessoa.

Tentei fazer de 3 jeitos:
  1. Com Timer
    1. Crio um timer e durante esse tempo, uso move/simple move para fazer com que o game object se mova.
  2. Com Move/SimpleMove
    1. Tento usar o Move/SimpleMove para mexer o character controller na direção desejada.
  3. Com Translate
    1. Tento dar um translate no pai da hierarquia na direção na qual o modelo está direcionado, tenho essa posição cacheada.
  4. Lerp
    1. Já tentei dar um lerp na posição do pai da hierarquia.
Mas o problema que eu estou tendo é que ele sempre 'teleporta' pra posição final dele. Tentei as 4 alternativas acima e em todas elas ele 'desaparece aqui e aparece lá'. Tá muito cortado o movimento. Não sei se é pq a câmera não tem damping, mas acho que não é por isso não.

Alguma idéia? Se precisarem do código eu posto, mas eu só usei os comandos que eu citei acima.

Abraços!



--
________________________________
--
Luiz Felipe da Costa Pericolo Barbosa
UFRJ - Ciência da Computação / Computer Science
Baykush - Programador / Game Programmer 
"And The Heavens Shall Tremble"
"Stay hungry. Stay foolish."


Tinnus

unread,
Jun 12, 2012, 3:42:18 PM6/12/12
to gamedev-u...@googlegroups.com
Não sou familiar com o Character Controller, então não sei exatamente
o que o Move espera (ACHO que é uma velocidade), mas se for usar
Translate direto, você tem que mover o objeto todo frame (por exemplo,
no Update), com uma fórmula do tipo

transform.position += speed * Time.deltaTime;

onde "speed" é um Vector3 com a velocidade (unidades por segundo) em cada eixo.

Enfim, seria mais fácil ajudar se você mandasse também a(s) linha(s)
de código que tá usando pra cada uma das abordagens, e mais contexto
sobre como é a movimentação do personagem normalmente, e o que
exatamente você quer dizer com "dash". Sei que às vezes estamos tão
imersos no que estamos fazendo que podemos esquecer que o resto das
pessoas tá fora da nossa cabeça, e aí temos dificuldade pra descobrir
quanta informação deve ser dada, hehe :D

2012/6/12 Luiz Felipe Pericolo <luizpe...@gmail.com>:
--
Bruno "Tinnus"

Guilherme

unread,
Jun 12, 2012, 3:43:42 PM6/12/12
to gamedev-u...@googlegroups.com
Primeira dica, use SimpleMove ou Move, nao importa qual mas use um e somente um e chame ele somente uma vez por update.

Se voce quer fazer um dash com velocidade fixa, apenas alterne a logica de movimentacao do personagem durante o dash pra fazer ele se mover naquela direção durante um tempo usando um timer um testando uma certa distancia.

Caso voce queira fazer o movimento acelerado, user Slerp no vetor de movimento que voce passa pro move/simplemove.

2012/6/12 Luiz Felipe Pericolo <luizpe...@gmail.com>
qui em implementar um simples Dash em um game object com character controller em 3a pessoa.



--
Guilherme Fernandes

Yanko Gitahy Oliveira

unread,
Jun 12, 2012, 9:19:32 PM6/12/12
to gamedev-u...@googlegroups.com
Acho que pro CharController, se eu entendi o que você falou, a saída do Guifes resolva.
Se o cara tiver em dash, faz ele se mover na direção que ele deu o dash por tempoDoDash segundos, com uma velocidade X vezes maior que a normal, ignorando outros inputs de direção (se você quer um daqueles dashes "secos"). Pra testar se só parece ou se ele realmente "teleporta", faz o tempoDoDash ser muito grande (o suficiente pra ser CLARO que o movimento ocorreu, dado a velocidade).

Se foi isso que você testou no caso 1 e deu errado, posta o código aí pra galere.

[]s

--Yanko

2012/6/12 Guilherme <gui...@gmail.com>
Reply all
Reply to author
Forward
0 new messages