我正在建立一个应用程序,用户点击一个按钮,一个音频源播放。有暂停和退出的选项。
我试着整合一个滑动条来显示进度。
{
[Header("List of Tracks")]
[SerializeField] private Track[] audioTracks;
private int trackIndex;
[Header("Text UI")]
[SerializeField] private TextMeshProUGUI trackTextUI;
private AudioSource audio;
// Start is called before the first frame update
private void Start()
{
audio = GetComponent<AudioSource>();
audio.clip = audioTracks[trackIndex].trackAudioClip;
trackTextUI.text = audioTracks[trackIndex].name;
}
public void FiveMinuteMed()
{
trackIndex = 0;
audio.Play();
}
public void TenMinuteMed()
{
trackIndex = 1;
audio.Play();
}
public void FifteenMinuteMed()
{
trackIndex = 2;
audio.Play();
}
public void PlayAudio()
{
audio.Play();
}
public void PauseAudio()
{
audio.Pause();
}
public void StopAudio()
{
audio.Stop();
}
}
我试着把下面的代码段添加到on Update()函数中..显然是在start上声明变量等。当我点击play..应用程序就冻结了..
public Slider time;
public AudioSource audio;
// Start is called before the first frame update
void Start()
{
audio = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
time.maxValue = audio.clip.length;
time.value = audio.time;
audio.time = time.value;
}
有什么想法,我可以把滑块在原来的代码片段以上..?
2条答案
按热度按时间xxb16uws1#
删除这一行,看看它是否工作:
第一个月
dgsult0t2#
您可以使用UI Toolkit for Unity。
ProgressBar
将用于此场景。一种方法如下所示:我已经测试的代码和它的工作正常。如果你想要一个滑块,你可以很容易地转换成一个支持滑块此代码。
只需将类型从
ProgressBar
更改为Slider
。