Me encuentro bloqueado a la hora de ejecutar acciones tras un determinado tiempo. En este caso querría cambiar de escena tras cinco segundos de haber finalizado la partida, pero me ocurren varios problemas. Si pongo la velocidad a cero para que la bola no se mueva, desaparece el objeto por lo que desaparece el script y no llama a la siguiente escena. Y probando con la función Time.timeScale no parece hacer nada.
Me gustaría saber la forma correcta de pausar el juego para después llamar a una función después de un tiempo específico.
Me gustaría saber la forma correcta de pausar el juego para después llamar a una función después de un tiempo específico.
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Threading;
using UnityEngine.SceneManagement;
public class Ball : MonoBehaviour {
public float speed = 15;
public int scoreFinal = 5;
public Text scoreLeft;
public Text scoreRight;
public Text resultFinal;
public int segundosAumentarVelocidad = 10;
public AudioSource[] AudioClips = null;
private float contadorSegundos = ;
// Use this for initialization
void Start ()
{
AudioClips = GetComponents<AudioSource>();
GetComponent<Rigidbody2D>().velocity = Vector2.right * speed;
}
void FixedUpdate()
{
contadorSegundos += Time.smoothDeltaTime;
//Aumentar la velocidad de la bola cada x segundos
if(contadorSegundos >= segundosAumentarVelocidad)
{
speed = speed + 1;
contadorSegundos = ;
}
}
void OnCollisionEnter2D(Collision2D col)
{
//Golpea la pala izquierda
if(col.gameObject.name == "RacketLeft")
{
//Se calcula el hitFactor
float y = hitFactor(transform.position, col.transform.position, col.collider.bounds.size.y);
//Calcular dirección
Vector2 dir