Estoy tratando de cargar una escena en el editor mientras estoy en modo de reproducción y obtener el comportamiento exacto de:
SceneManager.LoadScene(ScenePath, LoadSceneMode.Single);Excepto sin requerir que la escena esté en la configuración de compilación .
Hubiera esperado que esto funcionara:
EditorSceneManager.LoadSceneInPlayMode(ScenePath, new UnityEngine.SceneManagement.LoadSceneParameters(LoadSceneMode.Single));Sin embargo, la escena parece cargarse de forma asíncrona, lo que no quiero para mi caso de uso particular.
¿Hay alguna manera de lograr lo que estoy buscando aquí?
Lo que estoy haciendo es crear un cargador para conjuntos de escenas que cargará de forma adicional un montón de escenas con diferentes restricciones en su comportamiento de carga (como: carga asíncrona, recargar siempre al hacer la transición igual->igual y otras características). Tengo esto funcionando bien en el editor mientras no estoy en el modo de reproducción, lo tengo funcionando bien en un reproductor integrado, pero el último caso es hacer que esto funcione mientras estoy en el editor y en el modo de reproducción .
La razón por la que necesito una carga "única" es cuando haces la transición de un conjunto de escenas a otro y no comparten escenas comunes. Como no puedo descargar todas las escenas, simplemente me salteo el paso de descarga y hago que la primera escena se cargue de forma sincrónica con LoadSceneMode.Single para que todo lo demás se descargue.
En caso de que sea relevante (realmente espero que no), estoy tratando de hacer esto desde dentro de la llamada OnInspectorGUI de un editor personalizado. Lo estoy activando presionando un botón allí.
EditorSceneManager.OpenScene con OpenSceneMode.SingleEditorSceneManager.LoadSceneInPlayMode con LoadSceneParameters(LoadSceneMode.Single)SceneManager.LoadScene con LoadSceneMode.SingleEditorSceneManager.LoadScene con LoadSceneMode.SingleResulta que no entendí bien qué SceneManager.LoadScene(ScenePath, LoadSceneMode.Single); incluso lo haría.
Un amigo había señalado que los documentos establecen claramente que la carga ocurrirá dentro de 1 cuadro, no en el sitio de la llamada.
Si te enfrentas a un problema similar, hay algunas opciones. Puede cargar async y suscribirse a esa devolución de llamada para realizar la activación. Otra opción es suscribirse a SceneManager.sceneLoaded y realizar la activación allí.