我正在尝试创建一个FMV游戏,我想找出一种方法来控制视频播放器的UI按钮,以改变场景,但只有在剪辑已完成播放。
如果用户没有选择任何东西,它将自动成为默认路径,我已经设法使用了loopPoinReached,它已经起作用了。
我可以弄清楚如何通过一个按钮使用相同的loopPointReached。
这是视频播放器的代码,它将自动加载下一个场景。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class loadBaseCampSeq : MonoBehaviour
{
void Start()
{
GameObject camera = GameObject.Find("Main Camera");
var videoPlayer = camera.AddComponent<UnityEngine.Video.VideoPlayer>();
videoPlayer.renderMode = UnityEngine.Video.VideoRenderMode.CameraNearPlane;
videoPlayer.url = "Assets/VideoAssets/intro.mp4";
videoPlayer.isLooping = false;
videoPlayer.Play();
videoPlayer.loopPointReached += EndReached;
}
void EndReached(UnityEngine.Video.VideoPlayer vp)
{
UnityEngine.SceneManagement.SceneManager.LoadScene("baseCampSeq");
}
}下面是我分配给UI Button On Click ()的基本代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class loadTruckButton : MonoBehaviour
{
public void truckSeq()
{
SceneManager.LoadScene("truckSeq");
}
}我一直在尝试从按钮中的其他脚本引用"EndReached“,但我找不到它。
任何帮助都是很棒的!
谢谢
发布于 2020-05-13 07:54:00
您必须将videoplayer功能从loadBaseCampSeq类分离到一个新类中。在loadBaseCampSeq类中,创建一个videoplayer (实例)字段和一个抽象EndReached方法:
public abstract class loadBaseCampSeq
{
public VideoPlayer videoPlayer;
public abstract void EndReached();
}创建一个从loadBaseCampSeq基类继承的按钮类。在button类中,重写使用其基类中的videoplayer实例的EndReached方法:
public class Button : loadBaseCampSeq
{
public override class EndReached()
{
videoPlayer.EndReached();
}
}https://stackoverflow.com/questions/61761699
复制相似问题