[英]How do Unity Events for Video Players work?
我们有一个脚本附加到具有 VideoPlayer 和一些视频的 object 上。 我们想知道(订阅)视频什么时候结束,所以我们可以决定播放另一个或做其他事情。
void Start()
{
videoPlayer.loopPointReached += Method();
}
VideoPlayer.EventHandler Method()
{
Debug.Log("it ended");
return null;
}
视频结束时日志不会出现。
存在对 videoPlayer 的引用,视频播放、暂停和停止都没有问题。
我们找到了包括计数帧等的解决方案,但我们希望有一个更优雅的解决方案。
你的代码写错了。 实际上,如果您编写videoPlayer.loopPointReached += null;
则此代码是相同的 . 因此,您为loopPointReached
事件订阅 null。 您将事件处理程序委托及其签名返回类型搞砸了。 你的代码应该是这样的,我想:
void Start()
{
videoPlayer.loopPointReached += Method; // do not call method with '()', but just subscribe it for event
}
// here the signature of the method corresponds to VideoPlayer.EventHandler delegate,
// that is void(VideoPlayer)
private void Method(VideoPlayer source)
{
Debug.Log("it ended");
}
您还可以阅读本主题中有关事件的移动如何在 C# 中制作按键表单事件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.