有没有办法在父音频源被禁用之前获取音频源播放的音频的当前播放时间?
我有一个游戏对象,它具有播放声音的音频源组件,我想在禁用游戏对象之前获取声音的当前播放时间。我试图把它放在void OnDisable()
上,但它不起作用。
void OnDisable()
{
AudioSource audiSource = GetComponent<AudioSource>();
Debug.Log(audiSource.timeSamples);
}
此脚本始终返回零。
我认为您基本上是在创建对AudioSource
对象的新引用。
你的类应该是这样的:
AudioSource _audioSource;
void Start(){
_audioSource=GetComponent<AudioSource>();
}
void OnDisable(){
Debug.Log(_audioSource.timeSamples);
}
检查音频源是否具有附加到 Clip 属性的声音。AudioSource.timeSamples似乎只有在将声音应用于"剪辑"栏时才起作用,无论是在检查器中还是通过脚本。如果您使用 AudioSource.PlayOneShot,您将始终得到 0。