Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Temas recientes

Splash screen en VR

Iniciado por Lapigames, Noviembre 07, 2018, 10:19:21 PM

Tema anterior - Siguiente tema
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 

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
 

 
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

Noviembre 12, 2018, 06:23:34 PM #2 Ultima modificación: Noviembre 12, 2018, 06:23:46 PM por BAMF
Aquí creo que el VR no se ha tocado mucho, por eso no te habrán respondido. Gracias por aclararlo!

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 ;)

Julio 17, 2019, 09:24:27 PM #4 Ultima modificación: Julio 17, 2019, 09:40:03 PM por megaPRO
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.

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?

@megaPRO estoy igual que tú, estoy buscando la forma de compilar en 64. Aún no he dado con la solución 

Cita de: iRobb date=1563396577Puede 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.
 
 

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

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

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

Julio 20, 2019, 05:59:09 PM #11 Ultima modificación: Julio 20, 2019, 06:00:52 PM por megaPRO
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.

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.

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.
 
 

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

Etiquetas: