【问题标题】:Play sound when other object(ball) hit cube当其他物体(球)撞击立方体时播放声音
【发布时间】:2016-02-03 10:35:22
【问题描述】:
using UnityEngine;
using System.Collections;

public class audio : MonoBehaviour
{
  public AudioClip hitsound;

  void  Update ()
  {
  }

  void  OnTriggerEnter2D (Collider2D other)
  {
    if (other.tag == "Ball")
    {
        GetComponent.<AudioSource>().PlayOneShot (hitsound);
    }
  }
}

我将 .mp3 文件分配给检查器,并且我添加了音频源组件,但我听不到敲击声。需要被摧毁的立方体在游戏中移动。我在不动的部分上添加了脚本和音频源组件,当球击中不动的部分时,声音正在播放(每次)。

我希望有人可以帮助我解决这个问题。

感谢和亲切的问候

【问题讨论】:

  • 你的游戏对象是否有刚体和碰撞体(你也应该使用OnCollisionEnter
  • 是的,我所有的游戏对象都有那个组件。好的,我会试试这个。
  • 您的 2D / 3D 声音设置是否有问题?你的音频听众在哪里?

标签: audio unity3d


【解决方案1】:

你有一个错字

获取组件。

应该是

获取组件

不是。 GetComponent 后给你报错?

无论如何,请确保您的碰撞器设置为触发器(组件上的复选框)。

我还认为 Unity 建议使用 CompareTag() 而不是 ==。

值得将 Debug.Log 放入 OnTriggerEnter2D 以查看它是否会触发。

最后,确保您的碰撞器是 2D 版本,而不仅仅是常规碰撞器。

【讨论】:

  • 嘿兄弟,Debug.Log 工作正常,但我听不到声音。这是为什么?我检查了所有对撞机,一切都很好。我之前说过,我将相同的脚本放在游戏的其他部分,它可以工作,但不能用于移动物体。
  • 不能这样做,因为它显示错误。 我之前说过我将相同的脚本放在游戏的其他部分并且它可以工作 :)
  • 您使用的是 Unity 4 还是 Unity 5?如果是 4,您的 AudioClip 是否设置为“3D 声音”?它可能正在播放,但您只是听不到它,因为该对象离摄像机上的 AudioListener 很远。如果您使用的是 Unity 5,请检查 AudioSource 上的音量和 3D 声音设置。这真的很奇怪,你没有得到 GetComponent 行的错误......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多