碰撞后音频剪辑不播放
Audio clip not playing after collision
我已经遇到音频问题 3 天了。我想在碰撞后播放音频。
没有得到任何正确的想法或者在我的场景中出现问题的地方,我无法解决我的问题。
在我的 GameObject 中,我通过 'Add Component' 添加了音频源,我将我的 mp3 文件放入 AudioClip 中,并且
勾选 'Play On Awake'.
注意:PlayExplosionAnimation() 和 Destroy() 工作正常。
public class Player : MonoBehaviour
{
private AudioSource source;
void Start()
{
source = GetComponent<AudioSource>();
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Rocks")
{
source.Play();
PlayExplosionAnimation();
Destroy(gameObject);
}
}
}
试试这个,如果它仍然不起作用,则意味着您的音频有问题:)
public class Player : MonoBehaviour
{
private AudioSource source;
void Start()
{
source = GetComponent<AudioSource>();
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Rocks")
{
source.Play();
PlayExplosionAnimation();
gameObject.SetActive("false");
Destroy(gameObject, 1f);
}
}
}
问题是 AudioSource
附加到游戏对象上,该对象在检测到碰撞后立即被销毁,因此您实际上听不到声音。一种可能的解决方案是通过指定您想要延迟销毁的秒数来延迟销毁游戏对象,例如延迟0.5秒
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Rocks")
{
source.Play();
PlayExplosionAnimation();
Destroy(gameObject, 0.5);
}
}
我已经遇到音频问题 3 天了。我想在碰撞后播放音频。 没有得到任何正确的想法或者在我的场景中出现问题的地方,我无法解决我的问题。 在我的 GameObject 中,我通过 'Add Component' 添加了音频源,我将我的 mp3 文件放入 AudioClip 中,并且 勾选 'Play On Awake'.
注意:PlayExplosionAnimation() 和 Destroy() 工作正常。
public class Player : MonoBehaviour
{
private AudioSource source;
void Start()
{
source = GetComponent<AudioSource>();
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Rocks")
{
source.Play();
PlayExplosionAnimation();
Destroy(gameObject);
}
}
}
试试这个,如果它仍然不起作用,则意味着您的音频有问题:)
public class Player : MonoBehaviour
{
private AudioSource source;
void Start()
{
source = GetComponent<AudioSource>();
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Rocks")
{
source.Play();
PlayExplosionAnimation();
gameObject.SetActive("false");
Destroy(gameObject, 1f);
}
}
}
问题是 AudioSource
附加到游戏对象上,该对象在检测到碰撞后立即被销毁,因此您实际上听不到声音。一种可能的解决方案是通过指定您想要延迟销毁的秒数来延迟销毁游戏对象,例如延迟0.5秒
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Rocks")
{
source.Play();
PlayExplosionAnimation();
Destroy(gameObject, 0.5);
}
}