Jump to content
UnitySpain
Sign in to follow this  
arth912

colisionar y baje valor de un slider constantemente

Recommended Posts

Hola foro, tengo un slider de vida entonces quiero que cuando el jugador colisione con un objeto el slider baje de 1 en 1 constantemente, solo puedo hacer que baje cada vez que colisiono hay alguna solucion a mi problema? Gracias.

Edited by arth912

Share this post


Link to post
Share on other sites

La acción sería que baje de 1 en 1, pero de 1 en 1 no nos dice absolutamente nada, que es de 1 en 1, 60 veces por segundo? 200 veces por segundo? cada 1 segundo ? ... como te dice leocub con un "stay" podrías verificar una y otra vez, pero eso sí, va a bajar horriblemente rápido si no hacés algo al respecto, por ejemplo con un simple flag podés hacer algo así, con una corrutina:

public float duracion = 1f;

Coroutine perderVidaCoroutine;

void OnCollisionStay( Collision col )
{
	if( personajeDisponible )
		perderVidaCoroutine = StartCoroutine( PerderVida() );
}

IEnumerator PerderVida()
{
	vida--;
	personajeDisponible = false;  //con esto no re-disparás la corrutina una y otra vez
	yield return new WaitForSeconds( duracion );  //termina en 1 segundo por defecto
	personajeDisponible = true;
}

Creo que podés ver si X corrutina se está reproduciendo, eso en este caso sería ideal, nunca lo usé.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×