让声音触发工作
Getting a sound trigger to work
我不明白为什么我的声音触发器不起作用。我创建了一个 GameObject 并向其添加了一个音频源(在音频源上我选中了 Play On Wake
和 Loop
。然后我添加了一个 Sphere Collider(我选中了 Is Trigger
)。最后我添加了我的脚本并将声音片段添加到检查器中。Unity 还说:"There are 2 audio listeners in the scene."
我几乎没有检查所有音频侦听器,但它仍然说,我做错了什么?
下面是我的代码:
#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;
}
}
如你所说:
I have pretty much unchecked all the audio listeners
必须启用附加到 Main Camera
的组件 AudioListener
。可能您已经使用了 LoadLevelAdditive
,所以您有两个摄像头和两个 AudioListener
组件,每个组件上都有一个。请确保此附加相机和任何其他游戏对象应禁用此组件。
此外 在运行时,您可以在 Hierarchy
window 搜索中使用此搜索附加了 AudioListener
组件的组件酒吧.
t:AudioListener
这应该能帮到你。还要使用 Debug.Log
仔细检查 OnControllerColliderHit
函数调用并且 Audio.clip
在赋值后不为空。 Update
也有必要播放声音吗?
此外,由于性能成本,您应该将此行从 Update
移至 Start
函数:
var Audio= gameObject.GetComponent(AudioSource);
并在整个脚本中使用此 Audio
变量。
我不明白为什么我的声音触发器不起作用。我创建了一个 GameObject 并向其添加了一个音频源(在音频源上我选中了 Play On Wake
和 Loop
。然后我添加了一个 Sphere Collider(我选中了 Is Trigger
)。最后我添加了我的脚本并将声音片段添加到检查器中。Unity 还说:"There are 2 audio listeners in the scene."
我几乎没有检查所有音频侦听器,但它仍然说,我做错了什么?
下面是我的代码:
#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;
}
}
如你所说:
I have pretty much unchecked all the audio listeners
必须启用附加到 Main Camera
的组件 AudioListener
。可能您已经使用了 LoadLevelAdditive
,所以您有两个摄像头和两个 AudioListener
组件,每个组件上都有一个。请确保此附加相机和任何其他游戏对象应禁用此组件。
此外 在运行时,您可以在 Hierarchy
window 搜索中使用此搜索附加了 AudioListener
组件的组件酒吧.
t:AudioListener
这应该能帮到你。还要使用 Debug.Log
仔细检查 OnControllerColliderHit
函数调用并且 Audio.clip
在赋值后不为空。 Update
也有必要播放声音吗?
此外,由于性能成本,您应该将此行从 Update
移至 Start
函数:
var Audio= gameObject.GetComponent(AudioSource);
并在整个脚本中使用此 Audio
变量。