Jump to content
UnitySpain
Lapigames

Splash screen en VR

Recommended Posts

Buenas comunidad,

antes de nada, si este mensaje no está en el grupo correcto, perdóname @pioj.

Despues de dejarlo aparcado mucho tiempo, he decidido darle la puntilla a mi juego en VR para daydream y cardboard. Pero me falta un pequeño detalle, y no he visto manera de solucionarlo. Me gustaría que la splash screen no apareciese en vr. A ver, me explicó, todo el juego es vr, con las librerías de Google, menos la primera pantalla, que será un aviso y algunos parámetros de configuración, además del único anunció que tendrá el juego.

el problema es que queda raro, que la splash sea en vr, el anuncio y la pantalla siguiente no, y después otra vez vr.

¿alguien sabe cómo solucionarlo?

gracias de antemano 

Share this post


Link to post
Share on other sites

Bueno, después de leerme a fondo la documentación y probar y reprobar, me respondo a mi mismo, por si alguien tiene alguna vez el mismo problema, pueda solucionarlo :).

Lo primero que he tenido que hacer, es en player settings cuando vas a hacer el build, en el apartado

7OkWI.png

Y aquí, antes de Daydream hay que poner None, para que arranque sin VR.

Después, en el código de la parte donde comienza la experiencia VR poner la siguiente Couroutine:

IEnumerator SwitchToVR() {
  // Los nombres de los dispositivos están en minúsculas, como los devuelve `XRSettings.supportedDevices`.
  string desiredDevice = "daydream"; // O "cardboard" si es nuestro caso.

  // Algunos dispositivos VR no admiten la recarga cuando ya están activos, consulta
  // https://docs.unity3d.com/ScriptReference/XR.XRSettings.LoadDeviceByName.html
  if (String.Compare(XRSettings.loadedDeviceName, desiredDevice, true) != 0) {
    XRSettings.LoadDeviceByName(desiredDevice);

    // Debe esperar un fotograma después de llamar a `XRSettings.LoadDeviceByName ()`.
    yield return null;
  }

  // Ahora está todo bien para habilitar el modo VR.
  XRSettings.enabled = true;
}

Yo lo que hago en el start es llamarla con la siguiente línea:

StartCoroutine(SwitchToVR());

Y eso es todo.

Un saludo

Share this post


Link to post
Share on other sites

Aquí creo que el VR no se ha tocado mucho, por eso no te habrán respondido. Gracias por aclararlo!

Share this post


Link to post
Share on other sites

Ya lo he supuesto, pero tenía que preguntar, por si acaso. De todas formas he dado la solución que he encontrado, por si en un futuro alguien tiene el mismo problema, encuentre una respuesta a la pregunta.

Gracias @BAMF por responder ;)

Share this post


Link to post
Share on other sites

Hola, ya veo que es un post de hace 6 meses, pero tengo una duda. que va relacionada con los XRSettings.

He creado una escena de carga con la tipica barra de carga y para eso en los Players Settings en el apartado XR, lo activo y añado un "none" y el "cardboard", ya que en la primera escena no quiero que se active el XR, pues es informativa,  y cuando cargo la siguiente escena, llamo a una coroutine para que seleccione el SDK "cardboard" .

hasta ahí bien, esto funciona bien en versión apk Android 32 bits, ARMv7, pero no se porqué en 64 bits, ARMv8, no se activa el XR, voy a hacer un proyecto aparte, para ver si estoy arrastrando algo que me esté fastidiando el apk.

Son sólo pruebas, pero no he encontrado ninguna noticia de que sea un bug, Sabeis algo?

Saludos y gracias.

Xus.

Edited by megaPRO
corregir

Share this post


Link to post
Share on other sites

Puede ser que las librerías arm de 64 bits de google vr no tengan marcado que son para arm 64 y entonces no se incluyan en el build?

Share this post


Link to post
Share on other sites
On 7/17/2019 at 10:49 PM, iRobb said:

Puede ser que las librerías arm de 64 bits de google vr no tengan marcado que son para arm 64 y entonces no se incluyan en el build?

En ese caso, como lo resolverias?

Tengo instalado el Unityhub con Unity 2019.1.10f1, en Android y las Google VR Android se instalan desde el Package Manager, versión 1.18.4.

 

Share this post


Link to post
Share on other sites

Pues hay que ir al dir de plugins/android/libs/arm64-v8a seleccionarlas y ver si están marcadas como Android y CPU ARM64.

Share this post


Link to post
Share on other sites

Creo que he avanzado algo.

He creado una scena y de momento la build funciona sacandola con IL2CPP a 32 y 64 bits en Android, tambien he hecho la prueba sacar las builds por separado e instalar la de 64 bits,  y tambien funciona, por lo que ahora me toca averiguar que es lo que he cambiado en mis otras pruebas.  Si lo encuentro os comento.


Saludos.

Xus

Share this post


Link to post
Share on other sites

Si, las de 64 bits solamente se puede compilar con IL2CPP. Y con el Build App Bundle de Play.

Share this post


Link to post
Share on other sites

SI. Eso ya lo hacia desde el principio, si no no puedes marcar Arm64, claro, pero no necesariamente tienes que marcar la opcion Bundle, puedes sacar las versiones por separado, marcando la opción, Split y probarlas.

No se vosotros, pero yo iba arrastrando el Unitypackage de GoogleVR SDK para Android, y es justamente esto lo que no tengo en el proyecto que me funciona.

En la opción que va,  instalo el GoogleVR Android desde el Package Manager. Lo testearé otra vez, pero claramente tiene que ir relacionado con el SDK de GoogleVR para Android.

Seguimos.

 

Xus.

Edited by megaPRO
añado

Share this post


Link to post
Share on other sites

Solucionado,

Fiuuu.

 

He hecho varias cosas, por lo que exactamente no se que he arreglado.

1- Primero he copiado el proyecto a otra carpeta y lo he abierto alli, por lo que pudiera pasar.

2- He borrado carpeta Assets/Library, para que la reconstruyera Unity.

3- He reimportado el GoogleVR, pero en este caso la ultima version. La GoogleVRForUnity_1.200.1.

4-He puesto en el package Manager la version de GoogleVR Android la 1.4 creo recordar.

Entiendo que era algo del proyecto, pero con certeza, no lo se.

Saludos.

 

Xus.

Share this post


Link to post
Share on other sites

Hola,

Pues....creo haber llegado al culpable.

En Project Settings/Player/Publishing Settings donde está el Keystore Manager, hay la opción de Release dentro del apartado Minify,  donde puedes elegir None/Proguard/Gradle(Experimental) , que por lo que entiendo toca el codigo para hacerlo menos pesado, igual lo cifra o yo que sé,  entre otras cosas, corregirme si no es así porfa.

La cuestión es que si uso las opciones Proguard o Gradle(Experimental) pues, un churro para mi, y sólo con la opción en Release None exporto bien en 64 bits y funciona entonces, el activar y desactivar el VR perfectamente.

Espero que sirva si alguno más, le pasa eso. Ahora sabiendolo, miraré si es un bug....

 

Saludos.

 

Xus.

 

Share this post


Link to post
Share on other sites

Reduce el código aplicando ofuscación y elimina librerías que considera que no se utilizan. Sí, se pasa de la rosca bastante.

Share this post


Link to post
Share on other sites

×
×
  • Create New...