Итак, я экспериментировал с Handheld.PlayFullScreenMov ie и, как указано в документации:
Вызов этой функции приостановит Unity во время воспроизведения mov ie. Когда воспроизведение завершится, Unity возобновится.
Это признак проблемы синхронизации . Поэтому я установил следующий код:
using System.Collections;
using UnityEngine;
public class Testy : MonoBehaviour
{
void Start()
{
StartCoroutine(PlayVideo());
}
public IEnumerator PlayVideo()
{
Screen.orientation = ScreenOrientation.LandscapeLeft;
yield return new WaitForSeconds(1f);
Handheld.PlayFullScreenMovie("video.mp4", Color.black, FullScreenMovieControlMode.Full);
yield return new WaitForSeconds(1f);
Screen.orientation = ScreenOrientation.Portrait;
}
}
В моем эксперименте я обнаружил, что если бы я добавил ожидание в одну секунду после установки ориентации с помощью Screen.orientation
, это сработало бы, но если бы я ждал только один кадр, это не будет.
Решение
Добавьте yield return new WaitforSeconds(1f)
после изменения ориентации, чтобы убедиться, что ориентация изменилась. Я знаю, что это не самый красивый код, но, похоже, он выполняет свою работу.