做的东西时,音频信号源已经打了2分钟 [英] Do something when the audio source has been playing for 2 mins
本文介绍了做的东西时,音频信号源已经打了2分钟的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个剧本的工作,融合1天空盒到另一个。我需要让这种混合动画时会发生audiosource在2分钟内写一些code。
我怎样才能做到这一点?
我读过有关AudioSource.timeSamples,但我真的不明白我怎么知道什么时候达到2分钟。我应该用一些其他的方法?
解决方案
无效的start()
{
的debug.log(音频现在开始......);
调用(TwoMinutesHasPassed,120F);
}无效TwoMinutesHasPassed()
{
的debug.log(两分钟之内得到过去了);
的debug.log(现在我会褪色背景);
StartCoroutine(FadeNow);
}私人IEnumerator的FadeNow()
{
tParam = 0F;
而(tParam< 1)
{
tParam + = Time.deltaTime *速度;
valToBeLerped = Mathf.Lerp(0,1,tParam);
的debug.log(valToBeLerped是+ valToBeLerped.ToString(F4));
产量返回NULL;
}
skyboxmaterial.SetFloat(_荟萃,valToBeLerped);
的debug.log(变脸就完成了。);
}
I've got a script working that blends one skybox into another. I need to write some code so that this blend animation happens when the audiosource is at 2 minutes.
How can I do this? I've read about AudioSource.timeSamples, but I don't really understand how I know when 2 minutes is reached. Should I use some other method?
解决方案
void Start()
{
Debug.Log("Audio begins now.....");
Invoke("TwoMinutesHasPassed", 120f);
}
void TwoMinutesHasPassed()
{
Debug.Log("two minutes has passed");
Debug.Log("now i will fade the background");
StartCoroutine("FadeNow");
}
private IEnumerator FadeNow()
{
tParam = 0f;
while (tParam < 1)
{
tParam += Time.deltaTime * speed;
valToBeLerped = Mathf.Lerp(0, 1, tParam);
Debug.Log("valToBeLerped is " + valToBeLerped.ToString("f4"));
yield return null;
}
skyboxmaterial.SetFloat("_Blend", valToBeLerped);
Debug.Log("fade is done.");
}
这篇关于做的东西时,音频信号源已经打了2分钟的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文