Jump to content

rayser

Fosiles
  • Content Count

    2
  • Joined

  • Last visited

Community Reputation

0 Neutral

2 Followers

About rayser

  • Rank
    Recién Llegado

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

345 profile views
  1. 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. 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 = new Vector2(1, y).normalized; //Asignar velocidad GetComponent<Rigidbody2D>().velocity = dir * speed; //Activar sonido //sonidoPala.Play(); AudioClips[].Play(); } //Golpea la pala derecha if (col.gameObject.name == "RacketRight") { //Se calcula el hitFactor float y = hitFactor(transform.position, col.transform.position, col.collider.bounds.size.y); //Calcular dirección Vector2 dir = new Vector2(-1, y).normalized; //Asignar velocidad GetComponent<Rigidbody2D>().velocity = dir * speed; //Activar sonido //sonidoPala.Play(); AudioClips[].Play(); } //Golpea las paredes arriba y abajo if (col.gameObject.name == "WallTop" || col.gameObject.name == "WallBottom") { //Activar sonido //sonidoPared.Play(); AudioClips[1].Play(); } //Golpea las paredes izquierda y derecha if (col.gameObject.name == "WallLeft" || col.gameObject.name == "WallRight") { //Activar sonido //sonidoPared.Play(); AudioClips[2].Play(); //Sumar puntos if(col.gameObject.name == "WallLeft") { scoreRight.text = (int.Parse(scoreRight.text) + 1).ToString(); if(int.Parse(scoreRight.text) == scoreFinal) { resultFinal.text = "El jugador " + 2 + " ha ganado"; //GetComponent<Rigidbody2D>().velocity = Vector2.right * 0; //speed = 0; Time.timeScale = ; //Al pasar cinco segundos salta a la escena de créditos //StartCoroutine(cambiarEscena()); //Invoke("cambiarEscena", 0.5f); Invoke("cambiarEscena", 5); } } else { scoreLeft.text = (int.Parse(scoreLeft.text) + 1).ToString(); if(int.Parse(scoreLeft.text) == scoreFinal) { resultFinal.text = "El jugador " + 1 + " ha ganado"; //GetComponent<Rigidbody2D>().velocity = Vector2.right * 0; //speed = 0; Time.timeScale = ; //Al pasar cinco segundos salta a la escena de créditos //StartCoroutine(cambiarEscena()); //Invoke("cambiarEscena", 0.5f); Invoke("cambiarEscena", 5); } } } } float hitFactor(Vector2 ballPos, Vector2 racketPos, float racketHeight) { return (ballPos.y - racketPos.y) / racketHeight; } /*private IEnumerator cambiarEscena() { Debug.Log("pr"); yield return new WaitForSeconds(5); Debug.Log("pr2"); SceneManager.LoadScene("Credits"); }*/ void cambiarEscena() { Debug.Log("pr"); SceneManager.LoadScene("Credits"); } }
  2. rayser

    Saludos

    Hola, soy rayser. Mi campo es la programación pero soy un recién iniciado en Unity.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...