从菜单导航到包含8个1分钟MP4视频的场景时,这些视频使用RawImage组件上的新VideoPlayer脚本播放.我正在使用Unity 5.6.0b11 beta版.
在我要导航的场景中,预制件可以在列表缩略图中加载视频,以前我是在加载图像而不是视频,并且运行良好,现在在尝试加载视频时,它在Axon 7(4GB RAM)上冻结了38秒以上)和One Plus 3(6 GB RAM)上的32秒,但在Unity Player本身上播放时完全没有滞后.
我用于VideoPlayer的脚本来自此StackOverflow Question.
button.onClick.AddListener(new UnityEngine.Events.UnityAction(() =>
{
SceneManager.LoadSceneAsync("SceneSponsors");
StartCoroutine(CloseMenu());
}));
有没有一种方法,当mainScene在App启动时加载并需要导航时,我可以解决慢速加载场景或在后台预加载它们的问题.
我看到somewhere Resources.Load()也使它在Android设备上变慢,但是我已经通过删除所有我用来加载图像精灵的Resources.Load()进行了测试,但是问题仍然存在.
编辑:
这是我的CloseMenu()函数,仅用于滑动和移动菜单面板. P.S该应用程序仅在加载该特定场景时冻结,并在其他场景中正常运行.
IEnumerator CloseMenu()
{
if (IsOpen)
{
Vector3 pos = MainMenuWindow.transform.position;
iTween.ColorUpdate(CloseArea, new Color(0, 0, 0, 0f), .6f);
iTween.MoveTo(MainMenuWindow.gameObject, new Vector3(Screen.width, pos.y, pos.z), .6f);
IsOpen = false;
yield return new WaitForSeconds(.3f);
CloseArea.transform.position = new Vector3(-240 * ScaleFact, CloseArea.transform.position.y, CloseArea.transform.position.z);
}
}
编辑2
我正在使用脚本在RawImage上加载VideoPlayer.这是RawImage在Play mode along with VideoPlayer和inactive mode中的样子.
解决方法:
对于我的问题.我必须对此StackOverflow Question所使用的VideoPlayer API脚本进行一些更改
在该链接中使用的脚本中.协同例程是在Start()函数中启动的,该函数使视频可以使用8种不同的预制形式进行加载,即使它们处于暂停模式也可以立即加载.
因此,我添加了一个新函数PlayVideoOnClick()并将其附加到RawImage的Click事件,因此现在仅当单击RawImage时才加载视频.
从改变
public void Start()
{
Application.runInBackground = true;
StartCoroutine(playVideo());
}
至
public void PlayVideoOnclick()
{
Application.runInBackground = true;
StartCoroutine(playVideo());
}
附注:您还可以看到我的YouTube Video Tutorial和Blog on Playing Videos smoothly in Unity.
原文地址:https://codeday.me/bug/20191013/1910627.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。