Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Miguel2D en Abril 16, 2016, 02:37:47 AM

Título: (RESUELTO) GAME OVER desde el principio
Publicado por: Miguel2D en Abril 16, 2016, 02:37:47 AM
Buenas,Tengo un problema al exportar para Android. El juego está basado en un tutorial y se juega perfectamente en PC, mientras que en Android carga el juego perfectamente (el menú) pero cuando pulso para jugar se abre la escena de la fase e inmediatamente me salta la pantalla de 'Game Over'.  En el segundo que puedo ver de la escena mientras salta el 'Game Over' no veo al personaje en la pantalla, veo todos los demás elementos pero el personaje ha desaparecido.He probado tocando el boxCollider y la detección de colisión en continuo en vez de discreto . Pero nada. (móvil de última generación)¿Alguna idea?
Título: (RESUELTO) GAME OVER desde el principio
Publicado por: iRobb en Abril 16, 2016, 05:26:19 AM
Pues con esta poca info nada de nada.
Título: (RESUELTO) GAME OVER desde el principio
Publicado por: Miguel2D en Abril 16, 2016, 06:26:39 AM
El tutorial es el de "Corre, Corre" y básicamente he seguido los pasos obviando algunos detalles (sonido, por ahora). El resultado que obtengo es practicamente el mismo, pero en android no aparece el personaje.
Título: (RESUELTO) GAME OVER desde el principio
Publicado por: Trunex en Abril 16, 2016, 02:31:29 PM
Pon la script.
Título: (RESUELTO) GAME OVER desde el principio
Publicado por: Miguel2D en Abril 16, 2016, 10:22:10 PM
Uf, hay varios scripts en la escena.La del PJ sería:
using UnityEngine;
using System.Collections;

public class ControladorPersonaje : MonoBehaviour {

public float fuerzaSalto = 100f;

private bool enSuelo = true;
public Transform comprobadorSuelo;
private float comprobadorRadio = 0.4f;
public LayerMask mascaraSuelo;

private bool dobleSalto = false;

private Animator animator;

private bool corriendo = false;
public float velocidad = 1f;

void Awake(){
   animator = GetComponent<Animator>();
}

// Use this for initialization
void Start () {

}

void FixedUpdate(){
   if(corriendo){
      GetComponent<Rigidbody2D>().velocity = new Vector2(velocidad, GetComponent<Rigidbody2D>().velocity.y);
   }
   animator.SetFloat("VelX", GetComponent<Rigidbody2D>().velocity.x);
   enSuelo = Physics2D.OverlapCircle(comprobadorSuelo.position, comprobadorRadio, mascaraSuelo);
   animator.SetBool("isGrounded", enSuelo);
   if(enSuelo){
      dobleSalto = false;
   }
}

// Update is called once per frame
//void Update () {
   //if(Input.GetMouseButtonDown(0)){
void OnGUI() {
   if (GUILayout.Button("Press Me")){
      if(corriendo){
         // Hacemos que salte si puede saltar
         if(enSuelo || !dobleSalto){
            GetComponent<Rigidbody2D>().velocity = new Vector2(GetComponent<Rigidbody2D>().velocity.x, fuerzaSalto);
            //rigidbody2D.AddForce(new Vector2(0, fuerzaSalto));
            if(!dobleSalto && !enSuelo){
               dobleSalto = true;
            }
         }
      }else{
         corriendo = true;
         NotificationCenter.DefaultCenter().PostNotification(this, "PersonajeEmpiezaACorrer");
      }
   }
}
}
después está la de la cámara, la de los items, la que guarda el estado del juego, los destructores... EDITO: La cámra tiene un scrip que activa el Game Over:
using UnityEngine;
using System.Collections;

public class ActivarGameOver : MonoBehaviour {

public GameObject camaraGameOver;

// Use this for initialization
void Start () {
   NotificationCenter.DefaultCenter().AddObserver(this, "PersonajeHaMuerto");
}

void PersonajeHaMuerto(Notification notificacion){
   camaraGameOver.SetActive(true);
}

// Update is called once per frame
void Update () {

}
}
 
Título: (RESUELTO) GAME OVER desde el principio
Publicado por: Miguel2D en Abril 17, 2016, 01:34:21 PM
El fallo era el bug de Unity con la interpolación de movimientos en la rotación.interpolation -> Euler Angles (Quartenion Aproximation)
Título: (RESUELTO) GAME OVER desde el principio
Publicado por: iRobb en Abril 17, 2016, 01:36:52 PM
Pero de qué bug hablas?
Título: (RESUELTO) GAME OVER desde el principio
Publicado por: Braltor en Abril 17, 2016, 04:36:10 PM
la conversion entre euler angles y quaternions tiene limitaciones conocidas... no son bugs, es simplemente que los angulos 3D tienen dificultades para representar lo que está en el quaternion, incluyendo las aproximaciones de los floats