Unity在特定时刻启动音频



我是Unity的新手,我有一个小菜单,屏幕上会出现徽标。现在我想添加一个mp3/wav,当徽标出现在屏幕上时,它会提供音频。当徽标外观也停止时,音频应该停止。如何将音频放在徽标(png(出现的同一时刻?

提前感谢:(

对于您的简单案例来说,这可能是一个过度的解决方案,但您可以尝试使用Unity Timeline

https://docs.unity3d.com/Packages/com.unity.timeline@1.5/manual/index.html

你可以用声音设置所有菜单动画,然后点击播放。

https://learn.unity.com/tutorial/starting-timeline-through-a-c-script-2019-3#

您所需要做的就是引用包含要播放的音频的AudioSource,并使用PlayStop方法。同样重要的是要确保关闭字段PlayOnAwake,因为它将在场景开始时播放音频。

我不知道你目前是如何移动你的物体的,所以这里有一个非常通用的答案,关于如何使用我上面给出的信息来处理这个问题。

[SerializeField] private AudioSource yourAudio = null;
private void IEnumerator Movement
{
yourAudio.Start();

while(movement)
{
// your movement code here (assure there is a yield return null)
}

yourAudio.Stop();
}

有了一些代码或更多细节,我可以调整上面的片段,但主要思想可以应用于你所做的运动。如果你想在徽标出现在屏幕上的那一刻停止音频,那是一种不同的方法,所以让我知道这是否是你的意思。

为了完整起见,如果您只想在徽标可见或不再可见时停止或启动此音频,这里有一种方法。不过,请注意,这种方法也会由编辑器相机触发,因此,如果发生意外情况,请关闭或关闭场景视图。

public class YourLogoScript : MonoBehaviour
{
[SerializeField] private AudioSource yourAudio = null;

// stop audio when invisible
void OnBecameInvisible()
{
yourAudio.Stop();
}
// start audio when visible
void OnBecameVisible()
{
yourAudio.Start();
}
}

通过使用OnBecameInvisibleOnBecameVisible,每当任何(包括场景视图(相机看到附加在徽标上的renderer时,就会调用OnBecameVisible函数,当不再看到时,会调用OnBecameInvisible

最新更新