Unity C#OnTrigger / OnCollision Sound

时间:2016-05-31 07:55:44

标签: c# unity3d

注意:它是2D游戏

当角色接触到周围有Box Collider的物体时,我试图让音频片段播放。

我尝试过OnTrigger / OnCollision方法,但都没有播放任何声音。我也在网上尝试了很多解决方案,但碰撞时仍然没有声音。我的剪辑适用于清醒,但不是预期的。

清单:

  • 玩家有一个"玩家"标签
  • 玩家拥有Rigidbody 2D和Collider 2D
  • Oject Collider有' Is Trigger'打勾
  • 对象有一个AudioSource
  • 对象有一个音频脚本
  • 对象有一个用于碰撞的Box Collider 2D
  • 音频片段已附加到AudioSource组件

这是当前的脚本(附加到对象): 我非常感激!

public class Audio : MonoBehaviour 
{

    public AudioSource audioClip;

    // Use this for initialization
    void Start () {
    }

    // Update is called once per frame
    void Update () {
    }

    void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "Player")
        {
            audioClip.Play ();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

为了找出问题所在,您可以从简化问题开始。

你可以先在OnTriggerEnter2D中做一些简单的事情,你知道它会起作用,例如Debug.log

void OnTriggerEnter2D(Collider2D collision)
{
    Debug.Log(this.gameObject.name+ " collided with "+collision.gameObject.name)
}

通过这种方式,您将知道是碰撞还是音频问题。

碰撞可能会起作用,但由于错误的设置或您错过的其他一些细节,您无法听到音频。