在禁用对象之前获取AudioSource的当前播放时间

时间:2019-01-21 08:01:43

标签: c# unity3d audio-source

是否有一种方法可以在禁用其父音频之前获取音频源播放的音频的当前播放时间?

我有一个游戏对象,它具有播放声音的音频源组件,并且我想在禁用游戏对象之前获取声音的当前播放时间。我已经尝试在void OnDisable()上使用它,但是它不起作用。

void OnDisable()
{
AudioSource audiSource = GetComponent<AudioSource>();
Debug.Log(audiSource.timeSamples);
}

此脚本始终返回零。

2 个答案:

答案 0 :(得分:0)

我认为您基本上是在创建对AudioSource对象的新引用。

您的班级应该像这样:

AudioSource _audioSource;

void Start(){
_audioSource=GetComponent<AudioSource>();
}

void OnDisable(){
Debug.Log(_audioSource.timeSamples);
}

答案 1 :(得分:0)

检查AudioSource的Clip属性是否有声音。仅当在检查器中或通过脚本将声音应用于“剪辑”字段时,AudioSource.timeSamples才似乎起作用。如果您使用AudioSource.PlayOneShot,则总会得到0。