我正在使用适用于 Unity 的 Google VR SDK尝试使用 SDK 附带的组件构建一个简单的 360 度视频查看器。我正在尝试扩展他们的 PanoVideoSample 以在用户从菜单导航时动态更改源视频。
我无法通过代码更改 GvrVideoPlayerTexture 的 URL。在他们的演示场景 (VideoDemo) 中,他们有一个包含 Video Sphere 的 PanoVideoSample,您可以在检查器面板中编辑 GVRVideoPlayerTexture 脚本以指向正确的视频 URL。
我想在 C# 中动态设置视频 URL,而不是硬编码一堆单独的视频球然后隐藏/显示它们。我几乎已经使用以下代码完成了这项工作。
public void SwapVideo(int index){
videoSphere.GetComponentInChildren<GvrVideoPlayerTexture> ().videoURL = urls [index];// my new url
videoSphere.GetComponentInChildren<GvrVideoPlayerTexture>().ReInitializeVideo ();
videoSphere.SetActive (true);
}
public void ReturnToMainMenu(){
videoSphere.GetComponentInChildren<GvrVideoPlayerTexture>().CleanupVideo();
videoSphere.SetActive (false);
this.gameObject.SetActive (true);
}
上面的代码似乎可以工作,但问题是在设置 url 并重新初始化纹理后 videoSphere 上的纹理变成白色。我可以看到新视频已加载,并且我可以听到新视频的音频,但场景仅显示白色纹理。 在此处查看输出
我想知道我是否缺少 GvrVideoPlayerTexture 上的关键步骤,或者是否缺少其他调用来更新用于渲染场景的 StereoPanoSphereMaterial。这个 SDK 是相当新的,似乎没有很多人写它,所以任何帮助表示赞赏。