unity3d 如果在OnColliderEnter2D()中播放声音,是否有任何限制,或者我是否遗漏了什么?

mnowg1ta  于 2022-11-25  发布在  其他
关注(0)|答案(3)|浏览(147)

这是我的代码,它是如此基本,我知道的解决方案将太,但我检查了参考,仍然没有修复它,任何建议将不胜感激,谢谢!

using System.Collections;
using UnityEngine.Audio;
using System.Collections.Generic;
using UnityEngine;

public class Passed : MonoBehaviour
{
    AudioSource audioData;

    void Start()
    {
        
    }

    void OnColliderEnter2D()
    {
        audioData = GetComponent<AudioSource>();
        audioData.Play(0);
    }
}
ffx8fchx

ffx8fchx1#

是否在场景中创建了游戏对象:音频源并连接音频-然后连接使用audioData创建的音频源。
另一方面,我会这样编写代码:

void Start()
{
    audioData = GetComponent<AudioSource>();
}
void OnColliderEnter2D()
{    
    audioData.Play();
}

还要确保检测到碰撞。

7lrncoxx

7lrncoxx2#

确保脚本已经附加到对象上,我建议你把你要播放的音频剪辑放在一个变量中,使用public AudioClip SomeClip。还要确保没有其他声音与你正在播放的声音冲突。你应该只在背景音乐中使用AudioSource.Play()因为AudioSource.Play()一次只能播放一种声音,如果您希望同时播放多个声音,请使用AudioSource.PlayOneShot()和此方法,您可以同时播放多个声音。还要确保音频源的设置正确。

8nuwlpux

8nuwlpux3#

要检测碰撞2D,您需要用途:

void OnCollisionEnter2D(Collision2D col)
{
    Debug.Log("OnCollisionEnter2D");
}

相关问题