Audio 找到一个可靠的触发器来工作
我不明白为什么我的声音触发器不工作。我创建了一个游戏对象并添加了一个音频源(在音频源上,我检查了Wake上的Audio 找到一个可靠的触发器来工作,audio,unity3d,triggers,unityscript,Audio,Unity3d,Triggers,Unityscript,我不明白为什么我的声音触发器不工作。我创建了一个游戏对象并添加了一个音频源(在音频源上,我检查了Wake上的播放和循环。然后我添加了一个球体碰撞器(我检查了Is Trigger)。最后我添加了脚本并将声音片段添加到inspector中。Unity还说:“场景中有2个音频监听器。”我几乎没有检查所有的音频监听器,但它仍然说,我做错了什么 下面是我的代码: #pragma strict var WalkAudio:AudioClip; var OutCry:AudioClip; fu
播放
和循环
。然后我添加了一个球体碰撞器(我检查了Is Trigger
)。最后我添加了脚本并将声音片段添加到inspector中。Unity还说:“场景中有2个音频监听器。”
我几乎没有检查所有的音频监听器,但它仍然说,我做错了什么
下面是我的代码:
#pragma strict
var WalkAudio:AudioClip;
var OutCry:AudioClip;
function Update (){
var Audio= gameObject.GetComponent(AudioSource);
if(Input.GetButton("Horizontal") || Input.GetButton("Vertical"))
{
Audio.Play();
}
else
{
Audio.Pause();
}
}
function OnControllerColliderHit (hit : ControllerColliderHit)
{
var Audio= gameObject.GetComponent(AudioSource);
if (hit.gameObject.tag == "templeFloor")
{
var groundType = 1;
print("Temple");
Audio.clip=OutCry;
}
else{
Audio.clip=WalkAudio;
}
}
正如你所说:
我几乎检查了所有的音频侦听器
必须启用连接到主摄像头的组件AudioListener
。可能您使用了LoadLevelAdditional
,因此您有两个摄像头和两个AudioListener
组件,每个组件上都有一个。请确保此附加摄像头和任何其他游戏对象都应该有此组件NTE已禁用
此外,在运行时,您还可以在层次结构窗口搜索栏中使用此选项搜索连接了AudioListener
组件的组件
t:AudioListener
这应该会对您有所帮助。还可以使用Debug.Log
再次检查OnControllerColliderHit
函数调用和Audio.clip
在赋值后不为空。是否需要在更新中播放声音
此外,由于性能成本,您应该将此行从Update
移到Start
函数:
var Audio= gameObject.GetComponent(AudioSource);
并在整个脚本中使用此Audio
变量。1.可能有一个音频侦听器连接到主摄像机。2.检查您的音频剪辑是否为3D声音。如果是3D声音,则当您的对象远离摄像机时可能听不到。因此,请将其设置为2D音频剪辑。