我正在 Unity 中编写视频播放器,并使用滑块作为设置视频搜索的栏。
为此,我创建了 SeekVideo 函数,该函数使用滑块的值将其分配给视频并从 OnValueChange 调用它。
我的问题是,当在“Update”方法中更改滑块的值时,每一帧都会调用 SeekVideo 函数。
不知道有没有办法用flag来区分,比如函数是手动调用的还是自动调用的。
这是我的代码:
public void SeekVideo() {
Debug.Log("This function is being called every frame");
float value = slider.value;
long miliseconds = (long)(GetVideoDuration(videoIndex) * value);
Seek(0, miliseconds);
}
public void Update() {
if (isVideoPlayerReady && slider != null) {
slider.value = (float)GetVideoPosition(videoIndex) / GetVideoDuration(videoIndex);
}
}
我不知道是否可能,因为现在代码使每一帧都重置视频种子,并且消耗大量资源。有什么建议吗?
而不是设置
slider.value
这将触发您可以使用的回调事件
slider.SetValueWithoutNotify(...);
顾名思义,省略了回调