c# - Unity 中奇怪的滑块行为(手柄消失)
问题描述
所以我在 UI 中有一个滑块,用于显示视频进度条。出于这个原因,我扩展了常规Slider
类,使其也有一个属性来检查它是否被使用(因此用户仍然可以拖动自动更新的句柄)。这是课程:
public class VideoSlider : Slider
{
public bool IsUsed { get; private set; }
public void SilentSet(float value)
{
Set(value, false);
}
public override void OnPointerDown(PointerEventData eventData)
{
base.OnPointerDown(eventData);
IsUsed = true;
}
public override void OnPointerUp(PointerEventData eventData)
{
base.OnPointerUp(eventData);
IsUsed = false;
}
}
现在,在Update
视频控制脚本的功能中,我正在根据视频时间更新滑块:
public void Update()
{
var pos = (float)ModuleManager.instance.GetVideoPosition();
if (!videoSlider.IsUsed)
videoSlider.SilentSet(pos);
}
这就是问题发生的地方:当我这样做时,滑块手柄消失了。我已经检查ModuleManager.instance.GetVideoPosition
了多次以确保它返回一个介于 0 和 1 之间的值(这是我的滑块的最小值和最大值),但是一旦我使用从该函数返回的值,句柄就消失了。如果我从字面上使用任何其他值(静态值Time.time
等),滑块按预期工作并以稳定的速度向前移动,同时仍然允许用户拖动它,但由于某种原因,一旦我使用该函数返回的值它吓坏了。我只是在这个上不走运吗?
解决方案
当视频尚未准备好时,播放器似乎将视频长度报告为 0,这似乎导致了问题(显然除以 0)。但是除法的结果总是在适当的范围内,没有例外,这有点奇怪。
推荐阅读
- laravel - 从 Laravel 数据透视表中的额外外键获取集合
- c# - 将 JSON 属性反序列化为不同的类属性
- javascript - 如何在 Alexa Developer Console 中解决“请求的技能响应有问题”
- vue.js - vue-router 不重定向
- php - 链接页面时添加扩展路径有什么好处和坏处
- wix-react-native-navigation - Wix React Native Navigation V2 使用更多屏幕初始化 Stack
- java - 为什么我的 sql 代码在结果集中无法正常运行
- java - 当使用与主键不同的列(referencedColumnName)映射关系时,如何阻止 Hibernate 急切地获取关系?
- java - 如何解决映射到非java文件类型文本的java文件
- c - 我正在尝试以 long long int 类型存储值,但返回错误