【发布时间】:2017-03-15 05:02:27
【问题描述】:
从菜单导航到包含 8 个 1 分钟 MP4 视频的场景时,这些视频使用 RawImage 组件上的新 VideoPlayer 脚本播放。我正在使用 Unity 5.6.0b11 测试版。
在我尝试导航的场景中,预制件在列表缩略图中加载视频,以前我加载的是图像而不是视频,它工作正常,现在当尝试加载视频时,它在 Axon 7 上冻结超过 38 秒(4GB RAM)和 32 秒在一加 3(6GB RAM)上,但在 Unity Player 本身上播放时完全不滞后。
我用于 VideoPlayer 的脚本来自 StackOverflow Question。
button.onClick.AddListener(new UnityEngine.Events.UnityAction(() =>
{
SceneManager.LoadSceneAsync("SceneSponsors");
StartCoroutine(CloseMenu());
}));
有没有办法,我可以解决慢速加载场景或在应用程序启动时加载 mainScene 并在需要导航时在后台预加载它们。
我看到 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。这是 Play mode along with VideoPlayer 和 inactive mode 中 RawImage 的样子。
【问题讨论】:
-
你的
CloseMenu函数是什么样的? -
@Programmer 我已经添加了这个功能。顺便说一句,应用程序仅在加载该特定场景时冻结,并且适用于其他场景
-
嗯,
CloseMenu函数中没有任何事情发生。 38秒太长了。请检查您在 OnEnable、Awake 或 Start 函数中运行的代码。将它们全部禁用,然后一一重新启用它们。您会找到导致问题的原因。请张贴那个。