Jump to content
Goex

asignarle tiempo a un movimiento

Recommended Posts

Buenas.... estoy haciendo un juego al estilo metal slug 5 / contra .... quiero implementar el dash al personaje, pude dejarlo que haga el dash con el personaje mirando adelante (o sea ,durante el dash no podemos girarlo) y la distancia a recorrer...... el problema es que lo hace todo en 1 segundo, si le digo que avanze 2 metros los hace en 1 seg, pero si le digo que haga 30 metros, tmb los hara en ese tiempo........ digamos que quiero que haga por ejemplo 5 metros pero no en 1 segundo, sino que tarde 3 segundos en recorrer esa distancia.... este es el codigo que tengo de momento para el dash

 public var dashDistance : float = 25.0;
    private var counter = 0;
    private var isDashing = false;

 

if (Input.GetButton ("Fire2")) {
              isDashing = true;                                         
                            }
               if(isDashing){
              var forward : Vector3 = transform.TransformDirection(Vector3.forward);
     var curSpeed : float = 3.0 * dashDistance;
     controller.SimpleMove(forward * curSpeed );
 
     counter++;
 }
 
 if(counter > 15){
     isDashing = false;
     counter = 0;
  }

 

el personaje tiene un character controller y un box collider :P ... 

Share this post


Link to post
Share on other sites

en vez de;

counter++;

counter += Time.deltatime; //Counter valdra el tiempo que estas haciendo el dash

en vez de  :

var curSpeed : float = 3.0 * dashDistance;
controller.SimpleMove(forward * curSpeed );

controller.SimpleMove(forward * dashDistance / time.deltaTime ); //Movemos dashDistance pero dividido entre time.deltaTime (Para igualar Update y Segundos reales),esto es dificil de entender si no estas familiarizado , es cuestion de ponerse un rato y entenderlo, a modo de resumen ->  time.deltaTime es una "cte" que vale 1 / Updates por segundo

en vez de:

if(counter > 15){

if(counter > segundos){ //Comprobamos si el tiempo que esta haciendo el dash ha superado el tiempo que queremos (Tiene que acabar)
 

Un saludo ;)

Edito: En este post del foro se habla bastante del tema, en el ultimo comentario de este post intento explicar bastante el time.deltaTime por si te hace falta/ quieres verlo quiza te ayude a entenderlo  http://unityspain.com/topic/15700-como-se-le-aplicaria-timedeltatime/  :)

Edited by ProgramacionWH

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...