C# 在unity中使用视频播放器全屏时,如何旋转屏幕?
我正在unity3d中开发应用程序,方向是纵向。 因此,当我在全屏模式下播放视频时:C# 在unity中使用视频播放器全屏时,如何旋转屏幕?,c#,unity3d,C#,Unity3d,我正在unity3d中开发应用程序,方向是纵向。 因此,当我在全屏模式下播放视频时: Handheld.PlayFullScreenMovie(vClip, Color.black, FullScreenMovieControlMode.Full); 我的视频是全屏播放,但是纵向播放。但我想以横向模式播放。 我尝试: 它正在工作,但当视频完成时,应用程序方向不会更改为纵向。 请提供任何帮助。因此我尝试了,正如文档中所述: 调用此函数将在电影播放期间暂停Unity。播放完成后,Unity将恢复
Handheld.PlayFullScreenMovie(vClip, Color.black, FullScreenMovieControlMode.Full);
我的视频是全屏播放,但是纵向播放。但我想以横向模式播放。
我尝试:
它正在工作,但当视频完成时,应用程序方向不会更改为纵向。
请提供任何帮助。因此我尝试了,正如文档中所述:
调用此函数将在电影播放期间暂停Unity。播放完成后,Unity将恢复
这表明出现了时间问题。因此,我设置了以下代码:
使用系统集合;
使用UnityEngine;
公共课暴躁:单一行为
{
void Start()
{
开始例行程序(播放视频());
}
公共IEnumerator播放视频()
{
Screen.orientation=ScreenOrientation.LandscapeLeft;
返回新的等待秒(1f);
掌上.PlayFullScreenMovie(“video.mp4”、Color.black、FullScreenMovieControlMode.Full);
返回新的等待秒(1f);
Screen.orientation=ScreenOrientation.grait;
}
}
在我的实验中,我发现如果我在使用Screen.orientation
设置方向后再加上一秒钟的等待,它就会工作,但如果我只等待一帧,它就不会工作
解决方案
更改方向后添加一个返回新的WaitforSeconds(1f)
,以确保方向已更改。我知道这不是最漂亮的代码,但它似乎可以胜任这项工作
public void PlayVideo()
{
StartCoroutine(PlayFullVideoCoroutine());
Screen.orientation = ScreenOrientation.LandscapeLeft;
print("Play Full Video Coroutine!");
}
IEnumerator PlayFullVideoCoroutine()
{
Handheld.PlayFullScreenMovie(vClip, Color.black, FullScreenMovieControlMode.Full);
yield return new WaitForEndOfFrame();
Screen.orientation = ScreenOrientation.Portrait;
print("Full Video Playback Completed.");
}