unity3d 访问另一个场景的VideoPlayer以使用VideoPlayer,Prepare() 您所在的位置:网站首页 unity场景下载 unity3d 访问另一个场景的VideoPlayer以使用VideoPlayer,Prepare()

unity3d 访问另一个场景的VideoPlayer以使用VideoPlayer,Prepare()

2023-03-09 16:49| 来源: 网络整理| 查看: 265

我正在学习Unity,我必须改进一系列场景之间的过渡,每个场景都有一个名为VideoManager的游戏对象,每个场景都有一个VideoPlayer。我曾想过使用VideoPlayer. Prepare()来预加载下一个场景的下一个VideoPlayer,但我发现从另一个场景访问游戏对象真的很难。我一直在寻找可能的解决方案,我目前正在尝试一个,让我解释一下。1.创建具有两个属性的脚本VPGlobalManager:

[SerializeField] public List _secuence; [SerializeField] public int _indexCurrentVP;

我希望列表_secuence在应用程序的整个生命周期中持续存在,_indexCurrentVP是当前活动场景可以访问的指针,以了解哪个视频。准备()(一般来说,对于每个场景,我只想准备下一个场景的下一个视频播放器)。最后我'我想把这个脚本附加到一个GameObject中,并像https://gamedev.stackexchange.com/questions/110958/what-is-the-proper-way-to-handle-data-between-scenes这样使用DontDestroyOnLoad,或者使用一个具有这两个属性的static class。1.现在,这是个大问题:我还没有找到填充列表_sequence的方法,因为我必须从当前场景到尚未加载的场景访问GameObject,以便添加对下一个VideoPlayer的引用(在下一个场景中),然后Prepare()它。我不知道是否必须这样做,我一直在寻找这样做的方法,但最大的问题是,视频播放器在不同的场景中,我可以改变这一点。我想实现的东西,如有一个名为VPOptimized的脚本,并添加到每个视频管理器与下一个内容

public class VPOptimize : MonoBehaviour { VPManager _vpManager; private void Awake() { var _vp = transform.GetComponent() as VideoPlayer; if (_vp != null) { _vpManager.instance._secuence.Add(_vp); } } }

但不幸的是,Awake方法只在活动场景中触发,所以我可以将所有的VideoPlayer添加到我的列表中。就这样,如果你们中的任何人可以提供反馈或建议来改进我的解决方案,或者找到其他解决方案,我将不胜感激。美好的一天:)

救救我欧比·万·奇异的肯诺比,你是我唯一的希望**


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有